static text control显示两个对话框,重叠问题

不倒的土豆 2015-08-05 04:33:29
我为了在一个对话框区域内显示另外两个对话框,首先在父对话框放一个static text ctrl,然后在static text ctrl上放这两个子对话框。虽然显示了对话框,但是我在拖动其中一个的时候,会导致重叠的情况。如刚开始我让dlg1盖着dlg2,然后我再去拖动dlg2的时候,会发现dlg1的部分盖着dlg2.

求指点一下怎么才能解决这种情况。
创建代码如下:
父对话框头文件中
CDlg1 m_dlg1;
CDlg2 m_dlg2;
CRect m_dialogChild;


父对话框的OnInitDialog中

	m_dlg1.Create(IDD_DLG1,this); 
m_dlg2.Create(IDD_DLG2,this);
GetDlgItem(IDC_STATIC_AREA)->GetWindowRect(&m_dialogChild);
ScreenToClient(m_dialogChild);

m_dlg1.MoveWindow(m_dialogChild);
m_dlg1.ShowWindow(SW_SHOW);
m_dlg2.MoveWindow(m_dialogChild);
m_dlg2.ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC_ChildArea)->ShowWindow(FALSE);



...全文
411 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2015-09-26
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
孤客天涯 2015-08-25
  • 打赏
  • 举报
回复
对话框是不是设置了WS_CLIPSIBLINGS风格?
公共马甲0315 2015-08-25
  • 打赏
  • 举报
回复
编辑器的bug,主要是为了节省资源,windows窗口没有被刷新。你可以强制刷新它就行了。InvalidateRect(),就不会再有重叠残影了。 我遇到的只是子窗口最大化时,会有原尺寸的区域被父窗口给覆盖了,拖动我还没有试过。
baoyz 2015-08-25
  • 打赏
  • 举报
回复
用非模对话框不是更好吗?
不倒的土豆 2015-08-06
  • 打赏
  • 举报
回复
引用 3 楼 VisualEleven 的回复:
两个对话框为什么要重叠?你的对话框风格是Child风格吗?
因为这两个对话框的位置和大小在控件内要随时调整,不可避免会重叠的。 风格都是child
不倒的土豆 2015-08-06
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
拖动的对象使用SetWindowPos设置在最前面,然后再拖动
设置了最前还是那样。 好奇怪
Eleven 2015-08-05
  • 打赏
  • 举报
回复
两个对话框为什么要重叠?你的对话框风格是Child风格吗?
worldy 2015-08-05
  • 打赏
  • 举报
回复
拖动的对象使用SetWindowPos设置在最前面,然后再拖动
不倒的土豆 2015-08-05
  • 打赏
  • 举报
回复
两个子对话的style都是child,border是resizing,带最大最小化按钮

15,979

社区成员

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

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