为什么我的无模式Dialog显示不出来?

AdamsLee 2003-10-17 11:49:55
我在*Doc中定义了一个线程,当用户按下某一工具栏按钮后执行线程,线程中调用某一CView中的自定义的函数,函数中调用创建对话框:
if(m_pWarnInfoDlg->GetSafeHwnd() == 0)
{
m_pWarnInfoDlg->Create();
}

可是我按了按钮后,对话框看不到,改成下面后,对话框一闪就没了
if(m_pWarnInfoDlg->GetSafeHwnd() == 0)
{
m_pWarnInfoDlg->Create();
m_pWarnInfoDlg->ShowWindow(SW_SHOW);
m_pWarnInfoDlg->UpdateWindow();
}
这是为什么?

...全文
29 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
AdamsLee 2003-10-18
  • 打赏
  • 举报
回复
都试过了,没有用:(
AdamsLee 2003-10-17
  • 打赏
  • 举报
回复
new 过了
试过了,好像不行
zhouqingyuan 2003-10-17
  • 打赏
  • 举报
回复
up
bigflyingpig 2003-10-17
  • 打赏
  • 举报
回复
之前new了吗?
或者不用最后的m_pWarnInfoDlg->UpdateWindow();试试?
zhumerchant 2003-10-17
  • 打赏
  • 举报
回复
对话框要有模板才行,你在资源编辑器里边加入一个对话框模板。
然后:
pDlg->Create( IDD_YOURDLG, this);
.....
clarkchiang 2003-10-17
  • 打赏
  • 举报
回复
你的对话框属新是不是CHILE和THIN的属性,如果不是要将其改成这样的
cnwww 2003-10-17
  • 打赏
  • 举报
回复
CDialog::Create
BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );

BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );
xaredant 2003-10-17
  • 打赏
  • 举报
回复
m_pWarnInfoDlg在什么地方定义的?不要在这个函数里面定义,
注意对象的作用范围
beyondtkl 2003-10-17
  • 打赏
  • 举报
回复
Create不加参数也可以的
不过要改写 OnCreate函数。
bigflyingpig 2003-10-17
  • 打赏
  • 举报
回复
Create()函数应该要参数啊
第一个参数是一个对话框的ID号
比如你在资源里有一个对话框,其ID是IDD_DIALOG1
用Create函数时应该这样Create(IDD_DIALOG1)

15,979

社区成员

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

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