显示非模式对话框实例
来源:互联网 发布:大麦盒子官网软件 编辑:程序博客网 时间:2024/05/23 21:18
使用API函数CreateDialog和CreateDialogParam。
结束非模式对话框使用DestroyWindow函数,而不是EndDialog函数。
非模式对话框建立后收到的第一条消息任然是WM_INITDIALOG。
如果资源中没有指定WS_VISIBLE属性,则非模式对话框创建后不会立刻显示出来,要调用Showwindow函数才能让其显示。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
新建简单的Win32项目ModallessDlg
向工程添加一个对话框资源,其ID为IDD_MAIN
将系统自动生成的ModallessDlg.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:DestroyWindow(hwndDlg);//EndDialog(hwndDlg , 1);return true;}break;case WM_CLOSE:DestroyWindow(hwndDlg);//EndDialog(hwndDlg , 0);return true;case WM_DESTROY:OutputDebugString(_T("对话框即将被销毁\n"));PostQuitMessage(0);return true;default:break;}return false;}int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ // TODO: Place code here.///创建非模式对话框
HWND hWnd = CreateDialogParam(hInstance,MAKEINTRESOURCE(IDD_MAIN) ,NULL ,DlgProc ,0);///显示对话框
ShowWindow(hWnd ,SW_SHOW);MSG msg ={0};while(GetMessage(&msg,NULL,0,0)){DispatchMessage(&msg);}OutputDebugString(_T("结束了\n"));return 0;}
说明:
1、非模式对话框必须在WinMain函数中加上消息循环的处理,否则应用程序会立即退出。
2、若非模式对话框做主窗体,则必须在对话框结束前调用PostQuitMessage函数以投递结束消息循环的消息。
3、非模式对话框也处理不到WM_CREATE消息。
******************************************************************************************
WM_CLOSE,调用DestroyWindow() **DestroyWindow()又发送WM_DESTROY **响应WM_DESTROY,调用WM_QUIT **GetMessage()发现WM_QUIT,退出程序 **
******************************************************************************************
可以看出,程序一旦退出main(WinMain)函数,应用程序即会结束,所以在实际应用中大多数程序的main函数中都是一个循环,
以持续完成需要的工作。
- 显示非模式对话框实例
- 显示模式对话框实例
- Win32汇编--非模式对话框实例
- 非顶级窗体不能显示为模式对话框错误原因
- MFC非模式对话框与主框架显示前后问题
- 非模式对话框
- 非模式对话框
- 非模式对话框使用手记
- 非模式对话框使用手记
- 关于非模式对话框
- 非模式对话框创建
- EVC 非模式对话框如何显示和隐藏(或者对话框之间如何相互调用)
- 模式和非模式对话框
- 模式与非模式对话框
- winform模式对话框和非模式对话框
- 让非模式对话框模拟模式对话框
- 论模式对话框与非模式对话框
- 模式对话框与非模式对话框
- UNBUNTU 架设DHCP服务器
- 【技术类】Image Extension for Server功能分享
- osg学习示例之遇到问题四骨骼动画编译osgCal
- 越狱的 iPhone、iPad 通过网站实现一键安装 ipa 格式的 APP 应用
- VC 自定义消息 postmessage用法
- 显示非模式对话框实例
- JAVA MD5的网络简洁方案(32位)
- 【在线应用】ArcGIS 影像技术应用新模式
- 小论接口(interface)和抽象类(abstract class)的区别
- 拼图
- 关于深度阈值的设定
- minigui时钟
- Android工具集 Revision 21
- android.app.WallpaperInfo壁纸信息类