VS2010 CMFCOutlookBar类如何去掉默认的右键功能

2025-04-18 03:52:35
推荐回答(1个)
回答1:

class COutlookBar : public CMFCOutlookBar
{
virtual BOOL OnShowControlBarMenu(CPoint point) { return FALSE; }
...
...
}
在 COutlookBar 的定义中重载虚函数 OnShowControlBarMenu
然后在 CMainFrame 的消息隐射宏里面添加右键响应(我这里正好有一个列表控件)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWndEx)
ON_NOTIFY(NM_RCLICK, IDC_LIST_SERIAL, &CMainFrame::OnRclickListPortDevHost)

最后
void CMainFrame::OnRclickListPortDevHost(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 1;
}