ツールバーにツールチップが表示されない(CSplitterWndにて) – プログラミング – Home

ツールバーにツールチップが表示されない...
 
通知
すべてクリア

[解決済] ツールバーにツールチップが表示されない(CSplitterWndにて)


ノース・ジャペン
 ノース・ジャペン
(@ノース・ジャペン)
ゲスト
結合: 17年前
投稿: 3
Topic starter  

VC++とかで自動生成されたコードはほっといても
CMainFrameにくっついているCToolBarの「ツールチップ」が
ステータスバーに表示されると思います。

ただ、CSplitterWndで区切られたサブ「フレーム」ウィンドウ上の
ツールバーのツールチップがそのままでは表示されないのです。

何か良い方法などあるのでしょうか?

ご教授宜しくお願い致します。


引用未解決
トピックタグ
Kerry
 Kerry
(@Kerry)
ゲスト
結合: 20年前
投稿: 192
 

ウィンドウの階層がどのようになっているのか分かりづらいです。
とりあえず、以下、SDIであると仮定して進めます。

> ただ、CSplitterWndで区切られたサブ「フレーム」ウィンドウ上の

ということは、以下のような階層になっているのでしょうか?

メインフレームウィンドウ(CFrameWnd)
+-- 分割ウィンドウ(CSplitterWnd)
| +-- サブフレームウィンドウ(CFrameWnd)
| | +-- ツールバー(CToolBar)
| | +-- ビュー(CView)
| +-- サブフレームウィンドウ(CFrameWnd)
| +-- ツールバー(CToolBar)
| +-- ビュー(CView)
+-- ステータスバー(CStatusBar)

このようになっているのであれば、サブフレームウィンドウから
メインフレームウィンドウのステータスバーを参照できるように
してやる必要があります。

CFrameWnd::GetMessageBar()を以下のようにオーバーライド
しましょう。

class CSubFrameWnd : public CFrameWnd
{
public:
virtual CWnd* GetMessageBar();
};

CWnd* CSubFrameWnd::GetMessageBar()
{
return GetToplevelFrame()->GetMessageBar();
}


返信引用
ノース・ジャペン
 ノース・ジャペン
(@ノース・ジャペン)
ゲスト
結合: 17年前
投稿: 3
Topic starter  

お返事ありがとうございます。

GetMessageBar()はとても有効的でした。

今判ったのですが、単純なミスで、

ダイアログバーのコマンドUI内で

UIを無効→UIを有効とコードを記述してました。。。

そのためにどうやらツールチップが表示されなかったらしいです。

お騒がせしました。。。


返信引用
ノース・ジャペン
 ノース・ジャペン
(@ノース・ジャペン)
ゲスト
結合: 17年前
投稿: 3
Topic starter  

解決です。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました