这个问题与我的上一个。
我有一个 MFC (VC6) MDI 应用程序,它有多个 MDI 子窗口,充当一个文档的不同视图。
是否可以将其中一个框架设置为位于其他框架之上?
我试过打电话
SetWindowPos(
&GetParentFrame()->wndTopMost,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE);
and
ModifyStyleEx(0, WS_EX_TOPMOST);
来自 CMDIChildWnd 但似乎都不起作用。
在您的 CMDIChildWnd 类(通常是 CChildFrame)中,添加一个静态HWND m_hTopWnd
。将其设置为等于您希望始终位于顶部的子项的 HWND。
Handle WM_WINDOWPOSCHANGED
in CChildFrame
。在处理程序中,检查当前是否m_hWnd == m_hTopWnd
。如果没有,请致电
::SetWindowPos(m_hTopWnd, HWND_TOP, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
这样,每当设置任何 MDI 子窗口的位置时,“始终位于顶部”的窗口都会被推回到顶部。
还处理WM_CLOSE
当顶部窗口关闭时,设置 m_hTopWnd = NULL。
也可以看看:代码项目文章 and MSDN 知识库
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)