古詩詞大全網 - 成語用法 - MFC怎樣給菜單設置帶參數的函數

MFC怎樣給菜單設置帶參數的函數

在頭文件中添加

afx_msg void OnNetPortSet(void);

在源文件中添加

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)

ON_COMMAND(ID_MODIFYPORT, &CMainFrame::OnNetPortSet)

END_MESSAGE_MAP()

ID_MODIFYPORT是菜單項的ID號,OnNetPortSet()菜單項的消息處理函數。妳就可以在這裏面添加用戶選擇該菜單項後所做的事情了啊

如果要讓彈出式菜單的某個菜單項,灰化,使用下面這個函數吧EnableMenuItem(m_hMainMenu, i, MF_BYPOSITION |MF_GRAYED)

具體函數使用說明如下

允許或禁止指定的菜單條目

BOOL EnableMenuItem(HMENU hMenu,UINT uIDEnableItem, UINT uEnable);

返回值 : BOOL 判斷是否成功

參數表 :

參數 類型及說明

hMenu ,菜單句柄

wIDEnableItem ,欲允許或禁止的壹個菜單條目的標識符。如果在wEnable參數中設置了MF_BYCOMMAND標誌,這個參數就代表欲改變菜單條目的命令ID。如設置的是MF_BYPOSITION,則這個參數代表菜單條目在菜單中的位置(第壹個條目肯定是零)

wEnable ,參考ModifyMenu函數中的菜單常數標誌定義表,其中列出了允許使用的所有常數。對於這個函數,只能指定下述常數:MF_BYCOMMAND,MF_BYPOSITION,MF_ENABLED,MF_DISABLED以及MF_GRAYED

這些值有下列含義:

· MF_BYCOMMAND 指定參數給出已存在的菜單項的命令ID號。此為缺省值。

· MF_BYPOSITION 指定參數給出已存在菜單項的位置。第壹項所在的位置是0。

· MF_DISABLED 使菜單項無效,以便它不能被選擇,但不變灰。

· MF_ENABLED 使菜單項有效,以便它能夠被選擇,並可從變灰的狀態中恢復出來。

· MF_GRAYED 使菜單項無效,以便它不能被選擇並同時變灰。