如何创建多个一样的非模态对话框?

chchch28 2012-09-14 12:36:31
不好意思,不是非常了解MFC
我的目的是希望在MFC的一个界面创建N个一样的另外一个界面
但是由于在我创建的时候建立的是基于对话框的模式。不知道是否有影响?
如果是我
TestDlg * dlg = new TestDlg;
dlg.Create(TestDlg::IDD,this);
dlg.ShowWindow(SW_SHOW);
当我第二次执行到Create这里的时候就会出错。
是否只能创建一个同一个界面的非模态窗口?
Create这个函数是不是只能创建一次同一个ID的窗口?要重新创建必须释放以前创建窗口的资源。
如果无法用非模态窗口来解决。
那么还有别的办法可以实现这个效果吗?
大概效果就是我在一个List Control里面有多条数据,每条数据都有一个一样的界面进行设置。
但是客户那边希望可以同时操作多个界面……

...全文
320 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
chchch28 2012-09-14
  • 打赏
  • 举报
回复
已经解决了……
我是把TestDlg里面还有引用别的界面。也要ShowWindow(SW_SHOW);
然后我把new别界面的指针放在全局变量里面
所以别的界面只new了一次。
然后就Create了2次。所以才会出错的。
结贴
chchch28 2012-09-14
  • 打赏
  • 举报
回复
还有,我尝试用过线程来创建多个模态窗口……
发现还是会出错的……只好放弃
长尾巴的悟空 2012-09-14
  • 打赏
  • 举报
回复
那也敲错了....
chchch28 2012-09-14
  • 打赏
  • 举报
回复
我从论坛上看了很多模态和非模态的资料
模态的是有独立的消息循环,非模态由主窗口控制
可是我同时开2个一样的非模态
也就是new了2次一样的类。Create了一样的ID。最后再ShowWindow就会出错的。
第一次是正常创建非模态窗口。
第二次造成错误我就不晓得是什么原理了……
是我手动敲代码的,敲错了。
确实是dlg->Create的。
这个是我在论坛上排版的时候敲错的。实际上是dlg->Create的
chchch28 2012-09-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

TestDlg * dlg = new TestDlg;
dlg.Create(TestDlg::IDD,this); //你的dlg是指针,这里没编译报错???
[/Quote]
我这个是手动敲的代码……
看不见的裂痕 2012-09-14
  • 打赏
  • 举报
回复
TestDlg * pdlg = new TestDlg;
pdlg->Create(TestDlg::IDD,this);
指针一定要使用 ->才行
w_xei 2012-09-14
  • 打赏
  • 举报
回复
二楼说出问题所在,应该
TestDlg * pdlg = new TestDlg;
pdlg->Create(TestDlg::IDD,this);
pdlg->ShowWindow(SW_SHOW);
用户 昵称 2012-09-14
  • 打赏
  • 举报
回复
最省事的声明多个变量,分别去create,这么做出错的话,就是细节的问题,不是方向的问题。
Eleven 2012-09-14
  • 打赏
  • 举报
回复
TestDlg * dlg = new TestDlg;
dlg.Create(TestDlg::IDD,this); //你的dlg是指针,这里没编译报错???

15,980

社区成员

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

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