2012-07-17 78 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