עבור לתוכן

c++ קליטת Int מEditBox

Featured Replies

פורסם

ניסיתי לקלוט מתוך editbox משתנה מסוג Int בעזרת הפונקציה: GetDlgItemInt אבל משום מה הקליטה נכשלת לי כל פעם!

       int h,w;
BOOL flag1;
xStart = GetDlgItemInt(hwnd,17,&flag1,false);
if(flag1==NULL) MessageBox(hwnd,NULL,NULL,NULL);
yStart = GetDlgItemInt(hwnd,18,NULL,false);
h = GetDlgItemInt(hwnd,19,NULL,false);
w = GetDlgItemInt(hwnd,20,NULL,false);

כל פעם קופץ לי הMessageBox שאומר שהקליטה נכשלה, ובנוסף הערכים שמקבלים המשתנים שווים ל0.

יש למישהו רעיון איך ניתן לתקן את זה?

תודה מראש :)

פורסם

מאיפה כל המספרים 17-20?

תשתמש ב-GetLastError כדי לבדוק מה הבעיה.

חוץ מזה, flag1 הוא BOOL, אל תשווה אותו ל-NULL אלא ל-TRUE/FALSE.

פורסם
  • מחבר

מאיפה כל המספרים 17-20?

תשתמש ב-GetLastError כדי לבדוק מה הבעיה.

חוץ מזה, flag1 הוא BOOL, אל תשווה אותו ל-NULL אלא ל-TRUE/FALSE.

המספרים האלו אלה האידיים של הeditbox של כל מקום שאני מכניס אליו, לדוגמא:

       xTBox = CreateWindow (TEXT("edit"), TEXT(""),
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_NUMBER,
70, 480,
150, 20,
hwnd,(HMENU) 17,
((LPCREATESTRUCT) lParam) -> hInstance, NULL) ;

ותיקנתי אצלי אחר כך את ההשוואה, זה עדיין לא הצליח - זה קולט אפסים במקום את המספר שזה אמור לקלוט.

ואיך אני משתמש בGetLastError?

תודה רבה :)

פורסם

אל תשתמש ב"מספרי קסם". תגדיר קבועים עם שמות אינפורמטיביים ותשתמש בהם.

לגבי GetLastError, שתי תוצאות ראשונות בגוגל. הדרך הכי פשוטה היא פשוט להציג את התוצאה המספרית של הפונקציה ואז לחפש בטבלה שכאן.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים