Процедуры диалогового окна


Процедура диалогового окна  похожа на оконную процедуру тем, что система отправляет сообщения процедуре тогда, когда она имеет информацию, чтобы задать или выполнить задачи. В отличие от оконной процедуры, процедура диалогового окна никогда не вызывает функцию DefWindowProc. Вместо этого, она возвращает значение ИСТИНА (TRUE), если обрабатывает это сообщение, или ЛОЖЬ (FALSE), если этого она не делает.

Каждая процедура диалогового окна имеет нижеследующую форму:

BOOL CALLBACK DlgProc(HWND hwndDlg, UINT message,
                      WPARAM wParam, LPARAM lParam) 
{ 
    switch (message) 
    { 
 
        // Здесь место расположения сообщения. 
 
        default: 
            return FALSE; 
    } 
}

Параметры процедуры служат одной и той же цели, что и в оконной процедуре, параметр hwndDlg получает дескриптор окна блока диалога.

Большинство процедур диалогового окна обрабатывает сообщение WM_INITDIALOG и сообщения WM_COMMAND, отправляемые органами управления, но обрабатывает не все, если  есть другие сообщения. Если процедура диалогового окна не обрабатывает сообщение, она должна возвратить значение ЛОЖЬ (FALSE), чтобы предписать системе обработать сообщения внутри. Единственным исключением из этого правила является  сообщение WM_INITDIALOG. Процедура диалогового окна должна возвратить значение ИСТИНА (TRUE), чтобы предписать системе далее обрабатывать сообщение WM_INITDIALOG. В любом случае, процедура не должна вызвать DefWindowProc.

 

Назад в оглавление
На главную страницу

Hosted by uCoz