我有一个按钮矢量,我想在两个对话框中显示。一些在我当前的窗口中,一个在当前窗口的父窗口中。我希望它们显得最顶端。
因此,对于当前窗口,它可以正常工作。 对于父窗口,我设置了父窗口,按钮正确定位,但它出现在另一个按钮后面。
我已经设置了SWP_NOZORDER:
std::vector<CGdipButtonEx*> m_trashIcons;
...
m_trashButtons[i]->SetWindowPos(nullptr,x,y,25,25,SWP_NOZORDER );
答案 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)
窗户是分层的。如果有两个对话框都有控件,则上方对话框中的所有控件都将显示在下方对话框中的控件上,即使下方对话框中的控件标记为最顶层,上方对话框中的控件也是'吨。