ホームリボンボタンの変な動作に直面しました。
リボンコントロールを持つOfficeテンプレートを使用してVisual Studio 2010で標準のMFCアプリケーションを作成しました。しかし、上の位置でHomeリボンボタンをダブルクリックすると、アプリケーションが閉じられます。
標準的なMFCアプリケーションハンドラの動作と、それをどのように変更できるのか教えてください。
私はPrevent double click on MFC-Dialog buttonを見ましたが、私のケースには適用できませんでした(もっと明確に - ダブルクリックハンドラをリボンのホームボタンに追加する方法がわかりません)。MFCのリボンのホームボタンがダブルクリックでアプリを閉じる
1
A
答えて
0
CMFCRibbonApplicationButtonはそうWM_LBUTTONDBLCLKのメッセージを処理できないのCWndに由来しません。 1つの解決策は、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);
}
別の解決策:CMainFrameクラスでオーバーライドのPreTranslateMessage。
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. MFCのダイアログが閉じる問題
- 2. UWPアプリをダブルクリックして戻るボタンを閉じるには?
- 3. ダブルクリックでWebViewを閉じる方法は?
- 4. ダブルクリックしてサイドパネルを閉じる
- 5. iOSデバイスをホームボタンでクリックするとアプリケーションを閉じる
- 6. 流暢リボン:舞台裏ボタンが舞台裏を閉じない
- 7. iPhoneホームボタンを押した後にキーボードを閉じる
- 8. アプリを閉じるclose ANDROID
- 9. アプリが閉じるまでの間、Mixpanelのイベントをフラッシュする
- 10. 他のアプリを閉じるには
- 11. プログラムでwin8アプリを閉じる
- 12. アプリが強制的に閉じる
- 13. 閉じるAndroidアプリのjQuery - PhoneGapの
- 14. VC++:escで(mfcではなく)ダイアログボックスを閉じるのを防ぐ方法
- 15. MFCキャプションバーから閉じるボタンを削除する方法
- 16. MFCでエディットコントロールのダブルクリックを初期化するのに助けが必要
- 17. MFCアプリケーションが自動的に閉じます
- 18. Silverlightアプリが1つのウィンドウを閉じても親ウィンドウも閉じます
- 19. MFC、メインウィンドウからモーダルダイアログを閉じる方法
- 20. コードネーム1:アプリケーションを閉じるべきである戻るボタンをダブルクリックする
- 21. 別のアプリを閉じるとアプリを開く
- 22. 閉じたアプリでチャットメッセージを保存
- 23. ESCを押してmfcダイアログアプリケーションを閉じるのを止める方法
- 24. MFCで親ダイアログではなく、子ダイアログのみを閉じます。
- 25. Android webviewのReactJSアプリ - 戻るボタンを押すとアプリが閉じる
- 26. Android Mの権限がアプリを閉じる
- 27. ブートストラップ閉じる閉じる閉じる閉じる閉じる閉じる閉じる次へ進む
- 28. webviewでAndroidアプリを閉じるとランタイムエラーが再開します
- 29. フラグメントが膨らんでいないとアプリを閉じる
- 30. インターネットが利用できないときにアプリを閉じる