ON_COMMAND_RANGE与ON_CONTROL_RANGE

Use this macro to map a contiguous range of command IDs to a single message handler function.

ON_COMMAND_RANGE(id1, id2, memberFxn )
Parameters
id1

Command ID at the beginning of a contiguous range of command IDs.

id2

Command ID at the end of a contiguous range of command IDs.

memb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MFC 中,可以通过修改窗口类的消息映射表来响应右击事件。具体步骤如下: 1. 在消息映射表中添加 ON_WM_CONTEXTMENU 宏,以便 MFC 在接收到 WM_CONTEXTMENU 消息时调用该类的 OnContextMenu 成员函数。 2. 实现 OnContextMenu 函数,在该函数中创建并显示一个弹出菜单。可以使用 CMenu 类来创建和管理菜单。 3. 在消息映射表中添加 ON_COMMAND_RANGE 宏,以便 MFC 在接收到菜单项的 WM_COMMAND 消息时调用该类的 OnCommand 成员函数。 4. 在 OnCommand 函数中根据菜单项的 ID 执行相应的操作。 下面是一个示例代码: ``` BEGIN_MESSAGE_MAP(CMyWindowClass, CWnd) ON_WM_CONTEXTMENU() ON_COMMAND_RANGE(ID_MY_MENU_ITEM_1, ID_MY_MENU_ITEM_3, OnMyMenuItem) END_MESSAGE_MAP() void CMyWindowClass::OnContextMenu(CWnd* pWnd, CPoint point) { CMenu menu; menu.CreatePopupMenu(); menu.AppendMenu(MF_STRING, ID_MY_MENU_ITEM_1, _T("Menu Item 1")); menu.AppendMenu(MF_STRING, ID_MY_MENU_ITEM_2, _T("Menu Item 2")); menu.AppendMenu(MF_STRING, ID_MY_MENU_ITEM_3, _T("Menu Item 3")); menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, point.x, point.y, this); } void CMyWindowClass::OnMyMenuItem(UINT nID) { switch (nID) { case ID_MY_MENU_ITEM_1: // Do something for menu item 1 break; case ID_MY_MENU_ITEM_2: // Do something for menu item 2 break; case ID_MY_MENU_ITEM_3: // Do something for menu item 3 break; default: break; } } ``` 在上面的代码中,ID_MY_MENU_ITEM_1、ID_MY_MENU_ITEM_2 和 ID_MY_MENU_ITEM_3 是菜单项的 ID,可以根据需要修改。OnMyMenuItem 函数中根据菜单项的 ID 执行相应的操作,可以根据实际需求修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值