实现效果图:
首先右键选择需要弹出菜单的 List 控件,右键属性
在属性中选择 NM_RCLICK
然后右键资源视图,添加资源
输入菜单
在刚刚 选择 NM_RCLICK 生成的函数中添加如下代码:
// TODO: 在此添加控件通知处理程序代码
int n = pNMItemActivate->iItem;//选择了第几行
if (n != -1)
{
//保存所选软件的启动项
m_Select = n;
//下面的这段代码, 不单单适应于ListCtrl
CMenu menu, *pPopup;
menu.LoadMenu(IDR_MENU1);
pPopup = menu.GetSubMenu(0);
CPoint myPoint;
ClientToScreen(&myPoint);
GetCursorPos(&myPoint);
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, myPoint.x, myPoint.y, this);
}
编译运行程序,可以看到右键菜单已经出来了
选择菜单中添加事件处理子程序:
添加测试代码:
bool bFlg = false;
void CMServerDlg::OnImageViewMenuCommand()
{
// TODO: 在此添加命令处理程序代码
if (bFlg == false)
{
bFlg = true;
}
else
{
bFlg = false;
}
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu *pSubMenu = menu.GetSubMenu(0);
ASSERT_VALID(pSubMenu);
pSubMenu->CheckMenuItem(IDR_MENU1, MF_BYCOMMAND | MF_CHECKED);
}
添加代码:
// TODO: 在此添加命令更新用户界面处理程序代码
pCmdUI->SetCheck(bFlg);
UpdateData(FALSE);
相关代码:
https://download.csdn.net/download/Tiantangbujimo7/77346818