MFC对话框程序创建右键菜单以及选中子菜单

时间:2024-04-02 15:19:06

语言: VC++, IDE: VS2017

一、创建右键菜单
1.在资源试图中,添加一个Menu资源,ID命名为IDR_MENU_POP,并添加两个子菜单ID_SUB_MENU1、ID_SUB_MENU2
MFC对话框程序创建右键菜单以及选中子菜单

2.在类视图中,为需要添加右键菜单的对话框或者控件类添加WM_RBUTTONUP消息响应OnRButtonUp,并添加代码:

CMenu menu;
menu.LoadMenu(IDR_MENU_POP);

CMenu *pPopup = menu.GetSubMenu(0);

CPoint pointPos;
GetCursorPos(&pointPos);

pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, pointPos.x, pointPos.y, this);

二、选中右键子菜单
选中子菜单1,同样在OnRButtonUp中,“CMenu *pPopup = menu.GetSubMenu(0);”之后,增加代码:

if (1/*控制是否需要选中的条件根据需要修改*/)
{
    pPopup->CheckMenuItem(ID_SUB_MENU1, MF_CHECKED);
}

运行效果:
MFC对话框程序创建右键菜单以及选中子菜单