在程式中引用選單
大多數windows應用程式在資源描述檔案中只有乙個選單。您可以給選單起乙個與程式名稱相同的文字的名稱。程式寫作者經常將程式名用於選單名稱,以便相同的字串可以用於視窗類別、程式的圖示名稱和選單名稱。然後,程式在視窗的定義中為選單引用該名稱:
雖然訪問選單資源的最常用方法是在視窗類別中指定選單,您也可以使用其它方法。windows應用程式可以使用loadmenu函式將選單資源載入記憶體中,如同loadicon和loadcursor函式一樣。loadmenu傳回乙個選單控制代碼。如果您在資源描述檔中為選單使用了名稱,敘述如下:
hmenu = loadmenu (hinstance, text ("mymenu")) ;
如果使用了數值,那麼loadmenu呼叫採用如下的形式:
hmenu = loadmenu (hinstance, makeintresource (id_menu)) ;
然後,您可以將這個選單控制代碼作為createwindow的第九個引數:
hwnd = createwindow ( text ("myclass"), text ("window caption"),cw_usedefault, cw_usedefault,
cw_usedefault, cw_usedefault,
null, hmenu, hinstance, null) ;
在這種情況下,createwindow呼叫中指定的選單可以覆蓋視窗類別中指定的任何選單。如果createwindow的第九個引數是null,那麼您可以把視窗類別中的選單看作是這種視窗類別的視窗內定使用的選單。這樣,您可以為依據同一視窗類別建立的幾個視窗使用不同的選單。
您也可以在視窗類別中指定null選單,並且在createwindow呼叫中也指定null選單,然後在視窗被建立後再給視窗指定乙個選單:
setmenu (hwnd, hmenu) ;
這種形式使您可以動態地修改視窗的選單。
當視窗被清除時,與視窗相關的所有選單都將被清除。與視窗不相關的選單在程式結束前通過呼叫destroymenu主動清除。
CButtonST中選單按鈕的構建
前言 基於mfc based dlg實現,環境 vc 6.0 正文 新建乙個mfc based dlg的工程,命名為 trymenu 1 實現效果如圖 一 工具條的建立與載入 1 首先資源檢視中新建乙個menu資源,如圖 其中整個menu資源的id號為 idr menu1,第乙個選單項 one 的i...
MFC中選單變灰的問題
mfc中選單變灰 方法1 有updatecmdui控制代碼時 定義乙個bool變數m b來標誌選單項是否有效,該選單項響應update command ui訊息,在訊息處理函式中pcmdui enable m b 以後你根據需要來設定m b的值,就可以使選單是否可用。在乙個函式中可以控制多個選單 方...
MFC中選單的命令響應順序
響應順序是 點選某選單項,框架類最先接到選單命令訊息。框架類把接收到得這個訊息交給它的子視窗,即檢視類。檢視類根據命令訊息對映機制查詢自身是否對此訊息進行了響應,如果響應了,就呼叫相應響應函式對這個訊息進行處理,訊息路由過程結束。如果檢視類未對此訊息響應,交給文件類,文件類同樣查詢自身是否對此訊息進...