在线程中创建对话框的问题。

allen_zhaozhencn 2005-11-02 03:47:04
有一个派生自CDialog的对话框类CDemoDlg,
在一个线程中调用实例化,并建立一个非模式对话框,在线程函数的末端,关闭并释放资源,代码大概如下

UINT ThreadProc( )
{

CDemoDlg dlg;
dlg.Create(IDD_DIALOG1, NULL);
dlg.CenterWindow( );
dlg.ShowWindow(SW_SHOW);

....




dlg.EndDialog(0);

return 0;
}

在dlg析构时,出现Assert错误. DEBUG和Release都不能正确运行, 不知是怎么回事。
...全文
122 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
allen_zhaozhencn 2005-11-03
  • 打赏
  • 举报
回复
问题解决,谢谢各位,结贴!
rageliu 2005-11-02
  • 打赏
  • 举报
回复
路过...
wj59 2005-11-02
  • 打赏
  • 举报
回复
Create->Destory
EndDialog是用于模式对话框
快乐鹦鹉 2005-11-02
  • 打赏
  • 举报
回复
嗯。估计是这样。如果还有问题,那么就是对话框内部程序的问题了。
bobob 2005-11-02
  • 打赏
  • 举报
回复
Use the CWnd::DestroyWindow function to destroy a dialog box created by the Create function.

goodboyws 2005-11-02
  • 打赏
  • 举报
回复
非模式对话框,应该用DestoryWindow关闭,否则只是隐藏

15,471

社区成员

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

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