您的位置:首页 > 其它

对话框过程

2016-02-21 20:18 204 查看
发送给对话框(模态和非模态)的消息是由程序中的对话框过程进行处理的。这个过程与真正的窗口过程看起来很像,但其实是不一样的,对话框的窗口过程属于Windows,对于许多消息,这个窗口过程会调用对话框过程。

BOOL CALLBACK DlgPro( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam);

{

       switch(message)

       {

       case WM_INITDIALOG:

           returm TRUE;

       case  XXXX_msg:

           .....;

           returm TRUE;

           break;

       }

       return FALSE;

}

 

对话框过程与一般窗口过程的参数是一样的,而且必须被定义成CALLBACK函数。

对话框过程与一般窗口过程的区别有:

1、窗口过程的返回值是LRESULT,对话框过程的返回值是BOOL。

2、当窗口过程不处理一条消息时,它会调用DefWindowProc;当对话框处理一条消息时会返回TRUE(非零),而当它不处理一条消息时返回FALSE(零)。

3、对话框过程不需要处理WM_PAINT和WM_DESTROY消息,也不会收到WM_CREATE消息。它会在一条专门的 WM_INITDIALOG消息中进行初始化。

WM_INITDIALOG消息是对话框过程收到的第一条消息,这条消息只发送给对话框过程。当对话框过程返回TRUE时,Windows会把输入焦点设置到对话框的第一个含有WS_TABSTOP样式的子窗口控件上。

除上述消息外,对话框过程只处理WM_COMMAND消息,它会通过对WM_COMMAND消息进行 LOWORD(wParam) 操作,获得控件ID后进行相应处理。

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  对话框 win32