首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

怎么等待一个非模态对话框结束

2012-02-27 
如何等待一个非模态对话框结束?在WinMain()中创建一个非模态对话框,如何等待这个非模态对话框结束?代码如

如何等待一个非模态对话框结束?
在WinMain()中创建一个非模态对话框,如何等待这个非模态对话框结束?
代码如下:
int   APIENTRY   WinMain(HINSTANCE   hInstance,
                                          HINSTANCE   hPrevInstance,
                                          LPSTR           lpCmdLine,
                                          int               nCmdShow)
{
  CMyDialog   CMainDlg;

CMainDlg.Create(NULL);   //传入参数:对话框的父窗口句柄
ShowWindow(CMainDlg.m_hWnd,   SW_SHOW);

MSG   msg;
while   (GetMessage(&msg,   NULL,   0,   0))  
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return   0;
}
CMyDialog是自己用sdk封装的对话框类。在对话框的WM_DESTROY消息处理函数中添加代码:PostQuitMessage(0);

实际运行结果是,对话框结束后,GetMessage()的返回值始终不为0,程序死在循环的地方。

请问如何实现创建非模态对话框后的等待代码??

[解决办法]
在CMainDlg的消息处理中在Close的时候给你的当前的线程法发个消息就ok了,用PostThreadMessage.
在你MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
...这里接收对话框发来的消息就ok!
TranslateMessage(&msg);
DispatchMessage(&msg);
}

热点排行