向高手求教,急急,关于非模态对话框的一个简单的问题

hehuawei8527367 2003-06-13 07:24:55
我在对话框生成的类中加入creat()函数(BOOL型)
return CDialog::Create (IDD_DIALOG1,NULL);


然后我在一个类(不是view和doc类)加入一个消息函数响应点击菜单中弹出的命令,加入如下代码
CCAttributeDlg Dlg;
Dlg.Create ();
Dlg.ShowWindow (SW_SHOW);
我运行后,对话框只是弹出来闪了一下就没有了。这是为什么阿
...全文
31 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeajax 2003-06-13
  • 打赏
  • 举报
回复
一般来说非模式对话框因该用堆变量而不是栈变量
即:
CCAttributeDlg* pDlg=new CCAttributeDlg(...) ;
pDlg->Create ();
pDlg->ShowWindow (SW_SHOW);
这样就可以了,但是最后你一定要delete掉
syl08341 2003-06-13
  • 打赏
  • 举报
回复
looked
醉马不肖 2003-06-13
  • 打赏
  • 举报
回复
在函数退出时具有生命的变量
rokia 2003-06-13
  • 打赏
  • 举报
回复
把Dlg 声明为类成员或者是全局的变量。

你这个问题是因为 Dlg 是个局部变量 。 你的 ZZZZ函数已经退出,所有的变量都会被销毁了。
hehuawei8527367 2003-06-13
  • 打赏
  • 举报
回复
那应该怎么办呢,谢谢阿
醉马不肖 2003-06-13
  • 打赏
  • 举报
回复
ZZZZZ:ZZZZ()
{
CCAttributeDlg Dlg;
Dlg.Create ();
Dlg.ShowWindow (SW_SHOW);
}
CCAttributeDlg的生命在函数中结束了,当函数退出时,Dlg被释放了

15,980

社区成员

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

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