2012-02-08 46 views
1

有很多與定製對話窗口主菜單相關的文章,包括「自定義繪製」菜單。但他們似乎都沒有回答我的問題。Windows對話框主菜單的自定義位置

我有有(無邊框)窗口中的自定義繪製手工標題欄:

我需要這塊「肥肉」標題欄下,莫名其妙地顯示主菜單。我怎麼能這樣做,使用MFC?默認情況下,「本機」菜單似乎只能位於對話窗口客戶區的頂部(或者我錯了嗎?)。有沒有解決我的問題? 如果有人可以提供一些與我的問題有關的鏈接,我將不勝感激!我見過很多實現這個功能的產品,例如Ontrack想到了,但從來沒有就如何實現這一點做過任何解釋。 謝謝!

回答

1

我需要在這個「胖」標題欄下以某種方式顯示主菜單。

根據您發佈的圖片,這正是其中正在繪製的位置。

默認情況下,「本機」菜單似乎只能位於對話窗口客戶區的頂部(或者我錯了嗎?)。

不,這是正確的。該菜單將自動繪製在菜單欄所屬的位置:窗口頂部,標題欄正下方。

你已經決定通過重新實現非客戶區來搞砸你的應用程序的默認設置並把可用性扔到地獄。這意味着你不能依靠Windows來爲你繪製這些元素。相反,您需要承擔自己繪製所有這些事情的責任,這需要您編寫代碼才能完成。我不知道「Ontrack」是什麼,但是任何執行此操作的應用程序都是自己繪製菜單的應用程序。

另一個受歡迎的選項(由Internet Explorer使用一段時間)是使用鋼筋控制創建自己的菜單狀對象。這具有集成到現有工具欄控件並允許用戶根據需要重新排列項目的優點。它就像編寫自己的菜單控件一樣,具有不符合標準平臺約定和用戶期望的缺點(儘管它可能比你自己想象的要好得多)。有一個如何操作文章here on MSDN

我懷疑在進行這個項目時,你可能會咬掉更多的東西而不是咀嚼。請記住,幾乎沒有(如果有的話)繪製自己的標題欄的原因。正如你所看到的,符合你的平臺的標準期望對程序員來說通常更容易,並且更好地被用戶接受。

+0

科迪,感謝您的詳細解答。我會深入研究這些菜單工具欄,它似乎是我需要的。這個「截圖」實際上是在Photoshop中進行的,以顯示我想要得到的:-)。 – justme11 2012-02-08 19:35:18