ステータスバーにCMFCRibbonButtonのツールチップを表示するにはどうすればよいですか?
-
05-07-2019 - |
質問
メインフレームに CMFCRibbonStatusBar
があり、ここに CMFCRibbonButtonsGroup
を追加します。このコードには再び CMFCRibbonButton
があります。このボタンには、メニューエントリと同じIDがあります。
ボタンの作成は次のように行われます:
CMFCRibbonButtonsGroup* pBGroup = new CMFCRibbonButtonsGroup();
CMFCToolBarImages images;
images.SetImageSize(CSize(32, 16)); // Non-square bitmaps
if(images.Load(IDB_STATUSBAR_IMAGES))
{
pBGroup->SetImages(&images, NULL, NULL);
}
m_pStatusButton = new CMFCRibbonButton(ID_STATUS_SHOWSTATUS,
_T(""),
IMAGEINDEX_DEFAULTSTATUS);
pBGroup->AddButton(m_pStatusButton);
m_wndStatusBar.AddExtendedElement(pBGroup, _T(""));
このボタンをステータスインジケータとして使用します。
次の2つの場合にツールヒントを表示したい:
- ステータスが変更されたとき
- ユーザーがマウスをボタンの上に移動したとき。
最初から始める方法がわかりません。 ToolTipDemo
と DlgToolTips
のサンプルプロジェクトを見てきましたが、ツールバー項目またはダイアログボタンのツールチップを表示するだけなので、実行方法を理解できませんでした(< CMFCRibbonButton
)の代わりにcode> CWnd から派生)。
ToolTipDemo
サンプルプロジェクトに精通している場合:いくつかの方法があるように思われるため、ツールチップは「拡張ビジュアルマネージャーベース」のように見えることを好みます。 このスクリーンショットに示されているとしてのツールチップ。
ありがとう!
解決
マウスカーソルをコントロール上に置かずにツールチップを表示することは不可能だと思います。それはすべて自動的に行われます。
ただし、スクリーンショットのような見栄えの良いツールチップを使いたい場合は、次のように SetToolTipText
と SetDescription
を呼び出す必要があります。
CMFCRibbonButton* pBtn = new CMFCRibbonButton(12345, _T(""), 1);
pBtn->SetToolTipText("This is the bold Title");
pBtn->SetDescription("This is the not-so-bold Description");
pGroup->AddButton(pBtn);
他のヒント
CMFCRibbonButtonBar
内の CMFCRibbonButton
コントロールを使用しています。これは CMFCRibbonStatusBar
に追加されます。 CMFCRibbonButton()
コンストラクターの4番目のパラメーターである bAlwaysShowDescription
に注意してください。これは、 SetDescription()
が呼び出されました。
特に、 SetDescription()
が呼び出されていない場合、 bAlwaysShowDescription
がTRUEかFALSEかは関係ありません-ツールチップが表示されます(予想どおり) )。 SetDescription()
が設定され、 bAlwaysShowDescription
がFALSEの場合、ボタンにカーソルを合わせると、ツールチップがその下に説明とともに表示されます。
この bAlwaysShowDescription
パラメーターの名前を考えると直観に反すると思われるのは、これがTRUEで SetDescription()
が設定されている場合、 NEITHER ツールチップも説明も表示されます。これはこの投稿に関連するのだろうか?
https://connect.microsoft .com / VisualStudio / feedback / details / 399646 / cmfcribbonbutton-wont-show-tooltip-if-balwaysshowdescription-1
これが役立ち、 bAlwaysShowDescription
パラメーターのさまざまな組み合わせと SetDescription()
が設定されているかどうかで必要なものを実現できることを願っています。