在ListCtrl上添加右键菜单,并创建响应函数。

一:添加右键菜单(在选中的行上面添加右键响应菜单)

  1.首先创建一个菜单资源,在该项目上右键,添加资源,菜单资源,新建一个菜单资源(不会显示顶级菜单,只显示次级菜单)。  

  2.在自己新添加的类CMyListCtrl(该类继承自CListCtrl,并且该类类型的对象与ListCtrl资源进行了绑定),并在该类的消息中添加=NM_RCLICK消息,在它的消息处理函数中,

添加右键弹出菜单代码:

  

        CMenu menu;
	menu.LoadMenuW(IDR_MENU1);      //加载菜单资源
	CMenu* pPopup = menu.GetSubMenu(0);   获得次级菜单
	CPoint myPoint;
	GetCursorPos(&myPoint);      //获取鼠标坐标
        //弹出菜单
	pPopup->TrackPopupMenu(TPM_LEFTALIGN, myPoint.x, myPoint.y,this);    

  

二:创建右键菜单的响应事件

  1.在我们新建的类CMyListCtrl中,给菜单ID添加UPDATE_COMMAND_UI消息,之后在该消息的处理函数里面添加代码。

void CMyListCtrl::OnUpdate32772(CCmdUI *pCmdUI)//消息处理程序
{
	// TODO:  在此添加命令更新用户界面处理程序代码
	//INum = GetSelectionMark();
	CDlgModule MyDlgM;
	MyDlgM.DoModal();
}

  

原文地址:https://www.cnblogs.com/wingss/p/5123179.html