对话框过程
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后进行相应处理。
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后进行相应处理。
相关文章推荐
- MooBox 基于Mootools的对话框插件
- C#实现在前端网页弹出警告对话框(alert)的方法
- Android开发必知 九种对话框的实现方法
- Android列表对话框用法实例分析
- C#使用Word中的内置对话框实例
- MFC对话框中添加状态栏的方法
- win32下进程间通信(共享内存)实例分析
- 用JavaScript实现对话框的教程
- Asp.net 弹出对话框基类(输出alet警告框)
- boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
- 自制轻量级仿jQuery.boxy对话框插件代码
- 基于jQuery的弹出警告对话框美化插件(警告,确认和提示)
- JS 模态对话框和非模态对话框操作技巧汇总
- WMI中的Win32_PingStatus类(ping命令实现)
- win32安装配置非安装版的MySQL
- 一个win32窗口创建示例
- jquery ui对话框实例代码
- Android中自定义对话框(Dialog)的实例代码
- asp.net静态方法弹出对话框实现思路
- JavaScript 对话框和状态栏使用说明