MFC按钮不显示为最顶部

时间:2012-07-17 21:25:09

标签: windows mfc

我有一个按钮矢量,我想在两个对话框中显示。一些在我当前的窗口中,一个在当前窗口的父窗口中。我希望它们显得最顶端。

因此,对于当前窗口,它可以正常工作。 对于父窗口,我设置了父窗口,按钮正确定位,但它出现在另一个按钮后面。

我已经设置了SWP_NOZORDER:

std::vector<CGdipButtonEx*> m_trashIcons;
...
m_trashButtons[i]->SetWindowPos(nullptr,x,y,25,25,SWP_NOZORDER );

2 个答案:

答案 0 :(得分:0)

要设置按钮以显示在其他按钮上方,您需要将HWND_TOP作为第一个参数hwndInsertAfter传递。

m_trashButtons[i]->SetWindowPos(HWND_TOP,x,y,25,25,SWP_SHOWWINDOW);

不要过SWP_NOZORDER。 Z顺序是窗口彼此重叠的顺序(z轴)。这就是你想要设置的东西,所以说“请不要z顺序”是完全错误的做法。

根据文件:

  

SWP_NOZORDER 0x0004   保留当前的Z顺序(忽略hWndInsertAfter参数)。

答案 1 :(得分:0)

窗户是分层的。如果有两个对话框都有控件,则上方对话框中的所有控件都将显示在下方对话框中的控件上,即使下方对话框中的控件标记为最顶层,上方对话框中的控件也是'吨。