為了禁用CMFCRibbonApplicationButton的單擊和雙擊事件,我重載了CMFCRibbonApplicationButton如下:
1. MyRibbonApplicationButton.h文件內容:
#pragma once
class CMyRibbonApplicationButton :
public CMFCRibbonApplicationButton
{
public:
CMyRibbonApplicationButton();
//~CMyRibbonApplicationButton();
protected:
virtual void OnLButtonDown(CPoint point);
virtual void OnLButtonDblClk(CPoint point);
};
?
2. MyRibbonApplicationButton.cpp文件內容:
?
#include "stdafx.h"
#include "MyRibbonApplicationButton.h"
CMyRibbonApplicationButton::CMyRibbonApplicationButton()
{
}
//CMyRibbonApplicationButton::~CMyRibbonApplicationButton()
//{
//}
// CMyRibbonApplicationButton 成員函數
void CMyRibbonApplicationButton::OnLButtonDblClk(CPoint point)
{
return;
}
void CMyRibbonApplicationButton::OnLButtonDown(CPoint point)
{
return;
}
?
3.?
在CMainFrame的中的OnCreate函數中找到
m_wndRibbonBar.LoadFromResource(IDR_RIBBON);
在這一行的下面添加
CMFCRibbonApplicationButton* pMainButton = m_wndRibbonBar.GetApplicationButton();
delete pMainButton; //刪除框架自動生成的RibbonApplicationButton
CMyRibbonApplicationButton* pMyMainButton = new CMyRibbonApplicationButton();
pMyMainButton->SetImage(IDB_MAIN);
m_wndRibbonBar.SetApplicationButton(pMyMainButton, CSize(45, 45));
就可以了。