VC++中的CheckMenuItem函数

子菜单项勾选函数

是一种MFC函数,该函数可以选中其中一个菜单(打勾),同时其他菜单不被选中。

功能

在弹出式子菜单中的菜单对象中添加或删除复选标记。

函数原型

UINT CheckMenuItem( UINT nIDCheckItem, UINT nCheck );

返回值:如果成功,则返回非零值,否则为0。

参数

nIDCheckItem

指定将要操作的菜单对象,可以由该菜单对象的命令ID指定,也可由该菜单对象的索引号指定,具体的指定方式由第二个参数指定。

nCheck

由两部分按或运算组合。其一为MF_BYCOMMAND或MF_BYPOSITION,其二为MF_CHECKED 或MF_UNCHECKED。四个取值的含义如下:

MF_BYCOMMAND:表明应该根据菜单对象的命令来访问菜单项,即第一个参数是定的是菜单项的命令ID

MF_BYPOSITION:表明应该根据菜单对象的位置来访问菜单项,即第一个参数是定的是菜单对象的索引号

MF_CHECKED:设置菜单对象的复选标记

MF_UNCHECKED:移除菜单对象的复选标记

例如:m_main_menu.CheckMenuItem(IDR_LEVEL_LOW, MF_BYCOMMAND | MF_CHECKED);

MF_BYCOMMAND就表明了IDR_LEVEL_LOW为菜单的ID,MF_CHECKED表明LOW有菜单对象复选标记,如图所示的效果(假设LOW对应的是使用IE代理服务器的ID)。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现这个功能,我们需要在资源编辑器添加一个菜单,并将其与工具栏按钮ID_TEST关联起来。具体步骤如下: 1. 打开资源编辑器,添加一个新菜单项。在菜单项上输入“显示坐标”,并为它添加一个ID为ID_DISPLAY_POS的命令标识符。 2. 在工具栏上添加一个新按钮,命名为“显示坐标”,并为它添加ID为ID_TEST的命令标识符。 3. 在消息映射添加对ID_TEST命令的处理函数。在该函数,判断菜单项的选状态,并根据选状态来显示或隐藏鼠标坐标。代码如下: ```c++ void CMainFrame::OnTest() { static bool bShowPos = false; bShowPos = !bShowPos; CheckMenuItem(GetMenu()->GetSafeHmenu(), ID_DISPLAY_POS, bShowPos ? MF_CHECKED : MF_UNCHECKED); ShowMousePosition(bShowPos); } void CMainFrame::ShowMousePosition(bool bShow) { if (bShow) { SetTimer(1, 100, NULL); } else { KillTimer(1); SetWindowText(_T("Mouse Position")); } } void CMainFrame::OnTimer(UINT_PTR nIDEvent) { if (nIDEvent == 1) { POINT pt; GetCursorPos(&pt); ScreenToClient(&pt); CString str; str.Format(_T("X=%d, Y=%d"), pt.x, pt.y); SetWindowText(str); } CFrameWnd::OnTimer(nIDEvent); } ``` 在上面的代码,我们首先定义了一个静态变量bShowPos,用来存储菜单项的选状态。在OnTest函数,我们通过调用CheckMenuItem函数来设置菜单项的选状态,并通过ShowMousePosition函数来显示或隐藏鼠标坐标。 在ShowMousePosition函数,我们使用SetTimer函数来注册一个定时器,每100毫秒触发一次。在OnTimer函数,我们获取当前鼠标的坐标,并将其显示在窗口标题栏。 4. 在消息映射添加对ID_DISPLAY_POS命令的处理函数。在该函数,获取菜单项的选状态,并将其设置给工具栏按钮。代码如下: ```c++ void CMainFrame::OnDisplayPos() { bool bShowPos = GetMenu()->CheckMenuItem(ID_DISPLAY_POS, MF_BYCOMMAND) == MF_CHECKED; m_wndToolBar.GetToolBarCtrl().CheckButton(ID_TEST, bShowPos); ShowMousePosition(bShowPos); } ``` 在上面的代码,我们首先使用GetMenu函数获取当前菜单的句柄,并通过CheckMenuItem函数来获取菜单项的选状态。然后,我们使用GetToolBarCtrl函数获取工具栏的控件,并使用CheckButton函数来设置工具栏按钮的选状态。最后,我们调用ShowMousePosition函数来显示或隐藏鼠标坐标。 5. 编译并运行程序,点击工具栏上的“显示坐标”按钮,菜单项的选状态将会改变。同时,窗口标题栏将会显示或隐藏鼠标坐标。反之,点击菜单项也会改变工具栏按钮的选状态,并显示或隐藏鼠标坐标。 通过上述步骤,我们成功地实现了菜单项与工具栏按钮的联动,使得用户可以通过不同的方式来显示或隐藏鼠标坐标,提高了程序的易用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值