实现右键弹出子菜单,就像电脑右键弹出的那个子菜单一样,如图所示
一、添加右键点击事件函数
二、创建一个子菜单
点击资源视图,新建Menu菜单。
三、、在右键点击事件函数中实现功能
void CMyBrowseDlg::OnRclickListView(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
CMenu menu;//新建菜单实例,Cmenu就是一个类,这里创建一个子菜单对象
POINT pt = { 0 };//用于存储鼠标位置的结构体变量,pt.x和pt.y分别为x.y值
GetCursorPos(&pt);//得到鼠标点击位置
menu.LoadMenu(IDR_MENU1);//菜单资源加载,ID改成创建的子菜单,获取创建的子菜单的指针
menu.GetSubMenu(0)->TrackPopupMenu(0, pt.x, pt.y, this);//显示菜单的位置 //menu.GetSubMenu(0)获得弹出的子菜单的指针
*pResult = 0;
}