+ -
当前位置:首页 → 问答吧 → 前台子窗口问题

前台子窗口问题

时间:2011-12-11

来源:互联网

描述:

  单文档MFC程序, 

  1, CMyView 包含两个子窗口分别是 Left, Right, 这两个窗口类是CDialog, 但不包含 WS_CAPTION 标志。
  2, Right 包含6个子窗口分别是 A, B, C, D, E, F. 这六个子窗口类也是 CDialog,但不包含 WS_CAPTION 标志。

问题:

  这六个子窗口显示的时候可能会互相重叠,或部分重叠。当在一个子窗口上点击时将其调到前台,也就是显示在其它五个子窗口的前面。其它五个子窗口显示到它的后面。如何实现?

补充:

  我当前的实现办法是: 如果点击了A 就调用:

  CWnd* pParent = A.GetParent();
  A.SetParent(NULL);
  A.SetParent(pParent);

  这样 A 就会调到其它子窗口的前面。但这样有一些其它问题,所以希望找到更好的办法。

作者: hb19820102   发布时间: 2011-12-11

大概是:定义两个自定义消息,点击时响应(子窗体发送到框架),隐藏窗体(框架发送到子窗体)。WPARAM的值设置为(1-6)分别代表六个子窗体,发送点击响应消息时就把当前子窗体对应的编号一起发送,用于隐藏窗体时判断,然后隐藏。

作者: aizeng   发布时间: 2011-12-12

楼上的,不是隐藏。就象其它在 Desktop 上的窗口上样,可以根据 Z 序列进行排列。

我希望我的 RIGHT 下的子窗口可以根据 Z 序列进行排列。点击哪个窗口,哪个就在 Z 序列的最顶端。其余的窗口在它的下面,并不是隐藏。

作者: hb19820102   发布时间: 2011-12-12