对话框过程类似于窗口过程,因为当Windows向其发送消息以向其提供信息或执行任务时,向程序发送消息。与窗口过程不同,对话框过程从不调用DefWindowProc功能。相反,如果它处理消息则返回布尔值TRUE,否则返回FALSE。
每个对话框程序具有以下形式:
BOOL APIENTRY DlgProc(hwndDlg, message, wParam, lParam)
HWND hwndDlg;
UINT message;
WPARAM wParam;
LPARAM lParam;
{
switch(message){
//将消息案例放在这里。
默认:
return FALSE;
}
}
过程参数与窗口过程中的用途相同,【hwndDlg】参数接收对话框的窗口句柄。
大多数对话框程序处理控件发送的WM_INITDIALOG消息和WM_COMMAND消息,但如果有其他消息,则处理很少。如果对话框过程不处理消息,则必须返回FALSE以指示Windows在内部处理消息。这个规则的唯一例外是WM_INITDIALOG消息。对话框过程必须返回TRUE以指示Windows进一步处理WM_INITDIALOG消息。无论如何,程序不得调用DefWindowProc.