Mfc 如何使MDI子窗口位于其同级窗口之上?
这个问题与 我有一个MFC(VC6)MDI应用程序,它有几个MDI子窗口作为一个文档的不同视图 可以将其中一个框架设置为位于其他框架之上吗?Mfc 如何使MDI子窗口位于其同级窗口之上?,mfc,visual-c++-6,mdi,always-on-top,Mfc,Visual C++ 6,Mdi,Always On Top,这个问题与 我有一个MFC(VC6)MDI应用程序,它有几个MDI子窗口作为一个文档的不同视图 可以将其中一个框架设置为位于其他框架之上吗? 我试着打过电话 SetWindowPos( &GetParentFrame()->wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); 及 在CMDIChildWnd类(通常是CChildFrame)中,添加一个静态的HWND m\u hTopWnd。将其设置为要始终位于顶部的
我试着打过电话
SetWindowPos(
&GetParentFrame()->wndTopMost,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE);
及
在CMDIChildWnd类(通常是CChildFrame)中,添加一个静态的
HWND m\u hTopWnd
。将其设置为要始终位于顶部的子对象的HWND
在CChildFrame
中处理WM\u WINDOWPOSCHANGED
。在处理程序中,检查当前的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
另请参见:和您确定将子窗口置于其他窗口之上是一种良好的UI设计吗?这不应该成为一个单独的最上面的框架吗?还是一个控制栏?我很确定这不是一个好的UI设计,但这个论点不能让决策者信服。。。
::SetWindowPos(m_hTopWnd, HWND_TOP, 0, 0, 0, 0,
SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);