Mfc 如何使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。将其设置为要始终位于顶部的

这个问题与

我有一个MFC(VC6)MDI应用程序,它有几个MDI子窗口作为一个文档的不同视图

可以将其中一个框架设置为位于其他框架之上吗?
我试着打过电话

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);