CToolBarとCToolBarCtrlの使い方 – プログラミング – Home

通知
すべてクリア

[解決済] CToolBarとCToolBarCtrlの使い方


とも
 とも
(@とも)
ゲスト
結合: 24年前
投稿: 65
Topic starter  

こんにちは。環境はVC++.NET/WinXPです。

ツールバーをCToolBarとCToolBarCtrlを使って作成したいのですがうまくいきません。
(コードは分かりやすいようにエラー処理省略)
//CMainFrame::OnCreateの中で、

m_wndToolBar.Create( this ); //m_wndToolBarは CToolBar

//問題その1、このようにツールバーのスタイルを指定しても見た目の変更なし
DWORD toolstyle = m_wndToolBar.GetToolBarCtrl().GetStyle() | TBSTYLE_LIST;
m_wndToolBar.GetToolBarCtrl().SetStyle( toolstyle );

//ここは正常動作
m_wndToolBar.GetToolBarCtrl().AddBitmap( 1, IDB_BITMAP1 );
char lpszStrings[5] = aaa\0;
m_wndToolBar.GetToolBarCtrl().AddStrings( lpszStrings );

_TBBUTTON tb;
tb.iBitmap = 0;
tb.idCommand = ID_100;
tb.fsState = TBSTATE_ENABLED; //問題その2、ここで指定しても無視される
tb.fsStyle = TBSTYLE_CHECKGROUP | TBSTYLE_AUTOSIZE;//ここで指定しても無視される
tb.iString = 0;
m_wndToolBar.GetToolBarCtrl().AddButtons( 1, (LPTBBUTTON)&tb );

//ここは正常動作している
m_wndToolBar.SetButtonStyle( 0, TBSTYLE_CHECKGROUP | TBSTYLE_AUTOSIZE );

//ここまでで無効な状態のボタンのツールバーができる

//問題その3、こうしてもボタンは有効にならない。
m_wndToolBar.GetToolBarCtrl().EnableButton( ID_100, TRUE );

上のコードの何処が間違っているのかわかりません。
ツールバーに詳しい方、よろしくお願いします。


引用未解決
トピックタグ
とも
 とも
(@とも)
ゲスト
結合: 24年前
投稿: 65
Topic starter  

自分で質問して自分で回答するのもなんなのですが、
色々試してみると、ボタンを押した時のイベントハンドラがないと
上のコードはまともに動作しない事がわかりました。

つまりイベントのIDだけ用意してあっても、そのイベントが起こった時の関数
そのものがないとツールバーのボタンを作ってもまともに表示されないようです。
上のコードにコレといった間違いはありません。

ツールバーを作る時にはイベントハンドラも同時に作らなければならないようです。
(中は空でもいい)


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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