屏蔽windows应用程序中,windows自带的右键菜单
整体框架的右键菜单,下框栏等右键。
解决方案:重载状态栏右键菜单函数。OnPaneContextMenu
实现:
//.h #pragma once #include "afxribbonstatusbar.h" class MyCMFCRibbonStatusBar :public CMFCRibbonStatusBar { public: MyCMFCRibbonStatusBar(void); ~MyCMFCRibbonStatusBar(void); void OnPaneContextMenu(CWnd* pParentFrame, CPoint point); };
//.cpp #include "StdAfx.h" #include "MyCMFCRibbonStatusBar.h" MyCMFCRibbonStatusBar::MyCMFCRibbonStatusBar(void) { } MyCMFCRibbonStatusBar::~MyCMFCRibbonStatusBar(void) { } //去掉状态栏右键 void MyCMFCRibbonStatusBar::OnPaneContextMenu(CWnd* pParentFrame, CPoint point){ return; }
屏蔽里面GroupTree里面的右键消息
- 需要屏蔽到右键消息,如果对右键消息直接屏蔽,会导致消息想上层传递。
// 处理class CGroupTree : public CTreeCtrl
1. 添加右键消息响应
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
2.消息映射表添加
BEGIN_MESSAGE_MAP(CGroupTree, CTreeCtrl)
ON_WM_RBUTTONUP()
END_MESSAGE_MAP()
//处理class CColoredListCtrl : public CListCtrl
3.
class CColoredListCtrl : public CListCtrl
{
public:
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
};
4.
void CColoredListCtrl::OnRButtonUp(UINT nFlags, CPoint point) {
// TODO: 在此添加消息处理程序代码和/或调用默认值
//CListCtrl::OnRButtonUp(nFlags, point);
}
5.class CPropertiesViewBar : public CDockablePane
void CPropertiesViewBar::OnRButtonUp(UINT nFlags, CPoint point) {
// TODO: 在此添加消息处理程序代码和/或调用默认值
//CDockablePane::OnRButtonUp(nFlags, point);
}
6.class CMessagegDlg : public CDialog
afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
afx_msg void OnNMRClickList1(NMHDR *pNMHDR, LRESULT *pResult);
7.
void CMessagegDlg::OnRButtonUp(UINT nFlags, CPoint point) {
// TODO: 在此添加消息处理程序代码和/或调用默认值
//CDialog::OnRButtonUp(nFlags, point);
}
8.
void CMessagegDlg::OnNMRClickList1(NMHDR *pNMHDR, LRESULT *pResult) {
LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
*pResult = -1;//不再传递给上层
}