הליך תיבת הדו-שיח

שגרה תיבת הדו-שיח דומה שגרה חלון זה המערכת שולחת הודעות הנוהל כאשר מידע לתת או משימות לביצוע. בניגוד שגרה חלון, שגרה תיבת הדו-שיח אף פעם לא קוראת לפונקציה DefWindowProc . במקום זאת, היא מחזירה את הערך הבוליאני TRUE אם מעבד הודעה או FALSE אם לא.

כל הפרוצדורה תיבת הדו-שיח כוללת את הטופס הבא:

DlgProc BOOL APIENTRY (hwndDlg, הודעה, wParam, lParam) HWND hwndDlg; 
הודעת UINT; 
WPARAM wParam; 
LPARAM lParam; 
{מתג (הודעה) {/ / הודעה במקום מקרים כאן. 
 
        ברירת מחדל: להחזיר שקר; 
    } 
} 

 

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

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

Index