MFC怎样给菜单设置带参数的函数

 我来答
zhangjiaminggo
2012-07-24 · TA获得超过544个赞
知道小有建树答主
回答量:310
采纳率:100%
帮助的人:124万
展开全部
在头文件中添加

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 使菜单项无效,以便它不能被选择并同时变灰。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式