非模态对话框 显示

sevendog 2008-07-10 02:50:53
我在单文档程序中创建了一个非模态的对话框,对话框里有进度条,可是当我把他最小化后,再点还原的化,这个对话框就什么都没有了(原来有一个列表),如果我再点该对话框(不是点关闭按钮),他居然就不见了
CprogressDlg *progressdlg1 = new CprogressDlg();
progressdlg1->Create(IDD_PROGRESSDLG);
progressdlg1->CenterWindow();
progressdlg1->ShowWindow(SW_SHOW);
我是这样创建的,能显示出来,就是最小化的时候就会有问题
...全文
69 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sevendog 2008-07-10
  • 打赏
  • 举报
回复
我自己在onsize里面出了问题,现在解决了
谢谢大家哈
cnzdgs 2008-07-10
  • 打赏
  • 举报
回复
progressdlg1->Create(IDD_PROGRESSDLG, ((CFrameWnd*)AfxGetMainWnd())->GetActiveView());
cnzdgs 2008-07-10
  • 打赏
  • 举报
回复
这段代码在哪执行?
这样创建的对话框,其父窗口是主框架窗口,所以会被视图或其它窗口档住,应该在Create的第2参数给视图类指针。
hua_yang 2008-07-10
  • 打赏
  • 举报
回复
比如说在CDialogParent中调用
1. CprogressDlg *progressdlg1定义为CDialogParent成员变量
2. 在CDialogParent的构造函数或OnInitialDialog中new和create
3. 在点列表的项的时候显示CenterWindow,ShowWindow
4. 最后在析构函数中delete
sevendog 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hua_yang 的回复:]
CprogressDlg *progressdlg1
是局部变量,个人认为定义为成员变量比较好

最小化,还原之后控件不见了,应该是重绘的问题吧
[/Quote]
你可以详细地帮我说说是怎么做的吗?
我这个对话框是在点一个列表的项的时候出来的,
如果真的是你说的那样的问题,我该怎么改呢
hua_yang 2008-07-10
  • 打赏
  • 举报
回复
CprogressDlg *progressdlg1
是局部变量,个人认为定义为成员变量比较好

最小化,还原之后控件不见了,应该是重绘的问题吧

15,979

社区成员

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

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