使用API函数CreateDialog和CreateDialogParam.
结束非模式对话框使用DestroyWindow函数,而不是EndDialog函数。
非模式对话框建立后收到的第一条消息任然是WM_INITDIALOG.
如果资源中没有指定WS_VISIBLE属性,则非模式对话框创建后不会立刻显示出来,要调用Showwindow函数才能让其显示。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
新建简单的Win32项目ModallessDlg
向工程添加一个对话框资源,其ID为IDD_MAIN
将系统自动生成的ModallessDlg.cpp文件修改如下:
[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.