בעיה עם MFC ו MESSAGEBOX

ilankt

New member
בעיה עם MFC ו MESSAGEBOX

מתי שאני עושה MessageBox בתוכנית של MFC אז ל MessageBox אין את הפוקוס... אני צריך לעשות alt+tab או משהו כזה כדי שה MessageBox יקבל את הפוקוס... לעוד מישהו זה קורה? ואם כן, איך מתקנים?
 
שאלה

איזה פרמטר העברת ב-PARENT של ה-MESSAGEBOX? אם העברת NULL, אז סביר להניח שה-MESSAGEBOX לא יהיה בפוקוס. אתה צריך להעביר את ה-HANDLE/OBJECT של החלון הנוכחי (תלוי בסוג הקריאה ל-MESSAGEBOX). יהיה יותר ברור אם תוכל להסביר באיזו אפליקציה מדובר: DIALOG BASED, MSI, SDI, ומהיכן אתה מבצע את הקריאה ל-MESSAGEBOX (תוכנית ראשית, CLASS של חלון וכו').
 
איפה בדיוק

נשאר הפוקוס בזמן שמוצג ה-MESSAGEBOX? בחלון הראשי? בחלון אחר? ב-DESKTOP?
 

ilankt

New member
גיליתי שהפוקוס הוא לא הבעיה

פשוט לא רואים את ה MESSAGEBOX עד שלוחצים ALT... מוזר מאוד... רק לי זה יכול לקרות
 

ilankt

New member
בכל מקרה תבדקו בבקשה את הקוד

אם זאת בעיה בקוד...
 

g u y c o h e n

New member
הבעייה ב OnPaint

היא לא עושה כלום וזאת הבעייה תוסיף את 3 השורות האלה ל פונקציית אירוע OnPaint
LPPAINTSTRUCT ps; BeginPaint(ps); EndPaint(ps);​
 

cyberia2ooo

New member
ממתי בMFC משתמשים ב

BeginPaint וב EndPaint?? או בכלל עם OnPaint יש את OnDraw שעושה לך את העבודה
 

g u y c o h e n

New member
יצירת CPaintDC מבצעת

בעצם ב בבנאי שלה את BeginPaint ובדסטרקטור את EndPaint אז בעצם 2 הפתרונות הם אותות דבר. הבעייה בתכנית היא: ההודעה WM_PAINT לא יוצאת מתור ההודעות ללא קריאה ל BeginPaint ול EndPaint - מצב כזה יגרום ללולאה אינסופית שזה כנראה מה שהיתה הבעייה פה.
 
למעלה