CToolBarのSetBitmap関数の使い方について  

[戻る]
遠藤 2005/05/02(月) 18:42:38
CToolBarのSetBitmap関数の使い方について質問があります。

ツールバーの各項目ごとにイメージを設定しているのですが、
エラーになってしまいます。
使い方がまちがっているのでしょうか?
教えてください。

CToolBar    m_wndToolBar;
m_wndToolBar.SetBitmap(IDB_BITMAP1);// ビットマップイメージ
m_wndToolBar.SetButtonText(0, "フォルダ");
m_wndToolBar.SetBitmap(IDB_BITMAP2);
m_wndToolBar.SetButtonText(1, "検索");
m_wndToolBar.SetBitmap(IDB_BITMAP3);
m_wndToolBar.SetButtonText(3, "コピ-");

ゆう 2005/05/02(月) 18:57:25
全然間違ってます。全部説明するのは大変なので、
MSDNサンプルのmfcieが参考になると思います。

遠藤 2005/05/02(月) 19:20:28
先ほどのソースにこの行を追加したのですが、
最初の項目Noのみ画像が表示されます。
このようなやり方では駄目なのでしょうか?


CBitmap* bmp1 = new CBitmap();
bmp1->LoadBitmap(IDB_BITMAP3);
HBITMAP hBmp = (HBITMAP)bmp1->m_hObject;
m_wndToolBar.SetBitmap(hBmp);
m_wndToolBar.Invalidate();

m_wndToolBar.SetButtonText(0, "フォルダ");

CBitmap* bmp2 = new CBitmap();
bmp2->LoadBitmap(IDB_BITMAP2);
HBITMAP hBmp2 = (HBITMAP)bmp2->m_hObject;
m_wndToolBar.SetBitmap(hBmp2);
m_wndToolBar.Invalidate();

m_wndToolBar.SetButtonText(1, "検索");

RAPT 2005/05/03(火) 00:24:52
何はともあれ、開発環境を明示してください。

それから、一体何がしたいのでしょうか。
なんだか基本的なところが勘違いされているような気がします。
既に指摘されていることですが、もう一度きちんとMSDN・サンプルソースを
見て確認してください。

(VC++6, MFCだとして)
CToolBar::LoadBitmap()
CToolBar::SetBitmap()
にて複数のボタンの絵を1つのビットマップでまとめて指定します。(仕様)

そして、各ボタン個別に、上記で指定したビットマップの内、どの絵柄を
割り当てるかを、CToolBar::SetButtonInfo()にて設定します。


ツールバーボタン個別にビットマップを割り当てるには、CImageListを利用します。
CImageListでイメージリストを作成し、
CToolBar::GetToolBarCtrl()でCToolBarCtrlへの参照を取得し、
CToolBarCtrl::SetImageList() でイメージリストを設定します。

上記キーワード近辺についてMSDNをじっくりと読み調べてください。

古いスレッドには追加発言できません。