我遇到了家庭絲帶按鈕的奇怪行爲。
我已經在帶有帶控件的Office模板的Visual Studio 2010中創建了標準MFC應用程序。但是,如果我雙擊位於上部位置的Home Ribbon按鈕,應用程序將關閉。
你能告訴我,如果它是標準的MFC應用程序處理程序的行爲,我可以如何改變它?
我看過Prevent double click on MFC-Dialog button,但不能應用到我的情況(更清楚地 - 我不知道如何將雙擊處理程序添加到功能區主頁按鈕)。MFC絲帶首頁按鈕關閉雙擊的應用程序
1
A
回答
0
CMFCRibbonApplicationButton不從CWnd派生所以不能處理WM_LBUTTONDBLCLK消息。 一個解決方案是從CMFCRibbonBar派生。
class CCustomRibbonBar : public CMFCRibbonBar
{
// ...
protected:
DECLARE_MESSAGE_MAP()
afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
};
BEGIN_MESSAGE_MAP(CCustomRibbonBar, CMFCRibbonBar)
ON_WM_LBUTTONDBLCLK()
END_MESSAGE_MAP()
void CCustomRibbonBar::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CMFCRibbonBaseElement* pHit = HitTest(point);
if (pHit->IsKindOf(RUNTIME_CLASS(CMFCRibbonApplicationButton)))
{
// the user double-clicked in the application button
// do what you want here but do not call CMFCRibbonBar::OnLButtonDblClk
return;
}
CMFCRibbonBar::OnLButtonDblClk(nFlags, point);
}
另一種解決方案:覆蓋的PreTranslateMessage在CMainFrame類;
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if ((WM_LBUTTONDBLCLK == pMsg->message) && (pMsg->hwnd == m_wndRibbonBar))
{
CPoint point(pMsg->pt);
m_wndRibbonBar.ScreenToClient(&point);
CMFCRibbonBaseElement* pHit = m_wndRibbonBar.HitTest(point);
if (pHit && pHit->IsKindOf(RUNTIME_CLASS(CMFCRibbonApplicationButton)))
{
// do what you want but do not call CMDIFrameWndEx::PreTranslateMessage
return TRUE; // no further dispatch
}
}
return CMDIFrameWndEx::PreTranslateMessage(pMsg);
}
0
- 派生自己的派生類CMFCRibbonApplicationButton。
- 爲CMFCRibbonApplicationButton創建消息處理程序:: OnLButtonDblClk
- 提供您自己的雙擊實現。如果什麼都不應該發生,就把身體留空。
- 在您的CMainFrame中,您可以找到CMFCRibbonApplicationButton m_MainButton的定義。用你的實現替換類名稱。
相關問題
- 1. Codename one:應用程序應該關閉雙擊後退按鈕
- 2. 關閉按鈕應用程序點擊
- 3. 應用程序關閉按鈕單擊
- 4. xcode IOS 5按鈕關閉應用程序,如主頁按鈕
- 5. 關閉VS11應用程序的按鈕
- 6. HtmlHelp()關閉我的MFC應用程序
- 7. 關閉iOS電源按鈕關閉應用程序關閉
- 8. 後退按鈕關閉應用程序
- 9. Android按鈕Onclick關閉應用程序
- 10. 如何關閉按鈕上的.exe應用程序點擊
- 11. MFC應用程序無聲關閉
- 12. Android應用程序部隊關閉寫按鈕點擊
- 13. 在Android中單擊按鈕時關閉應用程序
- 14. 應用程序關閉並點擊約按鈕
- 15. 按鈕單擊強制關閉應用程序
- 16. 應用程序關閉點擊谷歌標誌在按鈕
- 17. 當點擊「X」按鈕時,如何關閉WPF應用程序
- 18. Android應用程序關閉後點擊按鈕
- 19. GPS應用程序 - 運行但關閉按鈕單擊
- 20. 應用程序強制關閉按鈕單擊?
- 21. 單擊關閉按鈕時終止應用程序
- 22. 用關閉按鈕關閉整個應用程序
- 23. Android應用程序關閉按鈕單擊(在自定義註冊頁面上)
- 24. 關閉firefox應用程序(alt + F4或關閉按鈕)
- 25. 關閉C#ASP.Net MVC4應用程序關閉按鈕
- 26. 長按iPhone應用程序中的首頁按鈕
- 27. 如何在C#windows應用程序中單擊關閉按鈕時阻止應用程序關閉?
- 28. 單擊按鈕關閉網頁
- 29. 在MFC應用程序中單擊按鈕時顯示錶單
- 30. iPhone應用程序點擊主頁按鈕關閉應用程序,而不是暫停