2012-07-17 50 views
0

我有一个我想在两个对话框中出现的按钮矢量。一些在我当前的窗口中,另一个在当前窗口的父窗口中。我希望它们看起来最顶级。MFC按钮不会显示为最高

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

我已经设置SWP_NOZORDER:

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

我把它看作设计不好的UI!为什么重叠控制? – Ajay 2012-07-18 08:19:25

+0

我是按钮的必备条件,让垃圾桶图标可以被剔除并删除用户界面上的按钮。 – Angelica 2012-07-18 12:24:15

回答

0

要设置一个按钮,上面显示你需要通过HWND_TOP作为第一个参数,hwndInsertAfter其他按钮。

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

不通过SWP_NOZORDER。 Z顺序是窗口在彼此顶部(z轴)的顺序。这是你想要设置的东西,所以说“请不要z-order”恰好是错误的事情。

作为每文档:

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

+0

其实我已经尝试使用&CWnd :: wndTop作为第一个参数(HWND_TOP没有编译)。我已经做了不同的组合,与SWP_SHOWWINDOW,你建议...但没有工作到现在:( – Angelica 2012-07-17 21:47:27

+0

@ user1533018你试过它没有SWP_NOZORDER? – Ben 2012-07-17 21:52:29

+0

是的...我试过使用它或不是..结合不同选择hWndInsertAfter参数。 – Angelica 2012-07-17 21:59:46

0

窗户是分层次的。如果您有两个对话框都有对话框,上方对话框中的所有控件都会出现在下方对话框中的控件上方,即使下方对话框中的控件标记为最上方而上方对话框中的控件不是“吨。

+0

嗯,我设置了其他窗口的父项。无论如何,我现在尝试在第一个对话框中创建所有内容,问题仍然存在.. = [ – Angelica 2012-07-18 12:21:20