显示模式对话框实例
2012-11-29 15:43
134 查看
模式对话框被创建后会立即显示出来,即使创建时没有指定WS_VISIBLE。
使用API函数DialogBox和DialogBoxParam。其中DialogBoxParam最常用。
调用EndDialog结束一个模式对话框.
对话框建立后收到的第一条消息是WM_INITDIALOG,所以对话框的初始化工作应该放在WM_INITDIALOG消息的响应函数中。
MFC中调用CDialog::DoMadal()可以创建并显示一个模式对话框。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
新建一个简单Win32项目ModalDlg
向工程添加一个对话框资源ID为IDD_MAIN
将系统生成的ModalDlg.cpp文件改写如下:
说明:
1、模式对话框的WinMain函数简单了许多,这是因为系统已经在后台做了许多工作,甚至在WinMain中连消息循环代码都可以省掉。
2、模式对话框的消息消息处理过程返回值为BOOL
3、实际对话框过程并没有收到WM_CREATE消息,因为WM_CREATE消息发出时,对话框框架还没有建立,这条消息被系统内部处理了。
使用API函数DialogBox和DialogBoxParam。其中DialogBoxParam最常用。
调用EndDialog结束一个模式对话框.
对话框建立后收到的第一条消息是WM_INITDIALOG,所以对话框的初始化工作应该放在WM_INITDIALOG消息的响应函数中。
MFC中调用CDialog::DoMadal()可以创建并显示一个模式对话框。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
新建一个简单Win32项目ModalDlg
向工程添加一个对话框资源ID为IDD_MAIN
将系统生成的ModalDlg.cpp文件改写如下:
#include "tchar.h" #include "resource.h" ///对话框过程,处理各种消息 BOOL CALLBACK DlgProc(HWND hwndDlg ,UINT uMsg ,WPARAM wParam ,LPARAM lParam) { switch(uMsg) { case WM_CREATE: OutputDebugString(_T("收到了WM_Create消息\n")); break; case WM_INITDIALOG: OutputDebugString(_T("收到了WM_InitDialog消息\n")); break; case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: break; case IDCANCEL: EndDialog(hwndDlg , 1); return true; } break; case WM_CLOSE: EndDialog(hwndDlg , 0); return true; default: break; } return false; } int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. ///显示模式对话框,***并等待****,直到对话框结束才返回 int nRet = DialogBoxParam(hInstance,MAKEINTRESOURCE(IDD_MAIN) ,NULL ,DlgProc ,0); ///此函数的返回值是由EndDialog函数指定的,即:**nRet***的值由EndDialog指定 switch(nRet) { case 0 : OutputDebugString(_T("标题栏的关闭按钮关闭了对话框\n")); break; case 1: OutputDebugString(_T("取消按钮关闭了对话框\n")); break; } return 0; }
说明:
1、模式对话框的WinMain函数简单了许多,这是因为系统已经在后台做了许多工作,甚至在WinMain中连消息循环代码都可以省掉。
2、模式对话框的消息消息处理过程返回值为BOOL
3、实际对话框过程并没有收到WM_CREATE消息,因为WM_CREATE消息发出时,对话框框架还没有建立,这条消息被系统内部处理了。
相关文章推荐
- JavaScript特效实例011-弹出全屏显示的网页模式对话框
- 非顶级窗体不能显示为模式对话框错误原因
- 当应用程序不是以UserInteractive 模式运行时显示模式对话框或窗体
- JavaScript特效实例010-弹出网页模式对话框
- Windows核心编程学习一:使用DialogBoxParam显示模式对话框
- 【Qt5开发及实例】17、一个对话框的坐标参数显示
- Android AlertDialog对话框的使用及实例(显示提示消息的对话框)
- 建立模式对话框显示提示文档
- 当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作
- 当应用程序不是以UserInteractive 模式运行时显示模式对话框或窗体
- 当应用程序不是以 UserInteractive 模式运行时显示模式对话框......
- iw14.0.50来了,终于可以直接在地址栏输入url打开iw功能页面了;可以自由使用EasyUI等js框架了;显示模式对话框也不再七绕八绕惹人烦了;
- Applet中显示模式对话框
- 向导模式对话框的创建和显示
- 弹出全屏显示的网页模式对话框
- CHtmlView 在对话框模式下显示的要点
- Win32汇编之模式对话框(实例+详解)
- XTreme ToolkitPro实例之1--Animation(对话框载入图片的动画显示)
- MFC模式对话框与非模式对话框 消息处理顺序 与非模式对话框的焦点问题、显示、关闭以及交互问题
- "当应用程序不是以 UserInteractive 模式运行时显示模式对话框或窗体是无效操作。请指定 ServiceNotification....."的解决方案