假設在C++中爲Win32 API編程,我會知道是否可以在菜單欄中包含DropDownList(具有CBS_DROPDOWNLIST樣式的COMBOBOX窗口)。如何使用Windows API在菜單欄中包含DropDownList?
在這方面或任何開始學習該主題的任何燈光將不勝感激。
假設在C++中爲Win32 API編程,我會知道是否可以在菜單欄中包含DropDownList(具有CBS_DROPDOWNLIST樣式的COMBOBOX窗口)。如何使用Windows API在菜單欄中包含DropDownList?
在這方面或任何開始學習該主題的任何燈光將不勝感激。
所有者繪圖是自定義內置API菜單的唯一選項。不僅是後方巨大的疼痛,它仍然不會產生你想要的效果。您必須手動繪製組合框並編寫代碼來響應所有鼠標事件,而不是僅僅放入標準組合框控件。
我的建議是使用模擬菜單欄而不是標準菜單欄的工具欄或rebar control。這是Windows(和Internet)Explorer在繪製菜單欄時所做的工作,它爲您提供了更多的靈活性,可以包含哪些控件。
有一個如何做到這一點使用可用的工具欄這裏的完整描述:
Creating an Internet Explorer-style Menu Bar
,你可以找到示例代碼螺紋鋼這裏:Using Rebar Controls
如果您準備處理所有的繪畫消息,您最終可以對應用程序的客戶端區域執行任何操作。你準備投入多少工作和代碼?
Boofhead:關於這項工作,沒有人能夠做到,但我不會過度增加可執行文件的大小,而只是爲了包括一個化妝品改進 - 組合框也可以是主窗口的客戶區域。 我的第一個想法是包括經典的風格,但我有如何獲得菜單欄的「處理」做測試的問題。它也必須對控制進行「分類」。 – 2011-02-12 11:31:13
科迪格雷:謝謝你的建議。我覺得在這種情況下,關於鋼筋控制的建議是「銀彈」。我會在接下來的幾天嘗試它,希望不必再問這個問題。順便說一下,我希望在最後一次發現M $站點中的一些簡單的C/C++示例,但我覺得有些迷失方向,因爲所有的東西都與.NET C#以及所有「新」小工具有關。 – 2011-02-12 11:52:50