关于非模式对话框问题

dong364 2008-10-06 02:17:16
vc2005, 我写了个基于Dialog的MFC程序,自己添加了一个对话框资源IDD_DIALOG2,在其上放一按钮,并通过右键Add Class...生成了一个对话框类CKxDlg, 在主对话框上放一按钮,在主对话框cpp中包含了KxDlg.h,然后我打算点击该主对话框按钮生成一非模式对话框,代码如下:
void CTestDialogDlg::OnBnClickedButton2()
{
CKxDlg* pdlg = new CKxDlg;
pdlg->Create(IDD_DIALOG2, NULL);
pdlg->ShowWindow(SW_SHOWNORMAL);

::Sleep(2000);

::DestroyWindow(pdlg->m_hWnd);
delete pdlg;

}

但问题出来了:IDD_DIALOG2上没有显示任何控件,也不响应关闭消息?
...全文
49 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dong364 2008-10-06
  • 打赏
  • 举报
回复
谢谢ylmbtm, 你真牛!
ylmbtm 2008-10-06
  • 打赏
  • 举报
回复
这是一个单线程的程序,你将父窗口创建出来后直接就sleep(2000);
无法进入主线程的消息循环,当然无法显示子控件,也无法响应消息了。
  • 打赏
  • 举报
回复
CTaskDlg *pDlg=new CTaskDlg;

if(pDlg->Create(IDD_DIALOG1))
{
pDlg->ShowWindow(SW_SHOW);
}

我以前用过这样的。。在VC6.0 下正常。。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧