え~
先日書いたVC++6.0で256色のツールバークラス(CToolBarCtrl)に関する情報は不完全だったので以下に最終的なコーディングを書いてみる。
CToolBarCtrl m_TBar;
CBitmap m_Bitmap;
CImageList m_ImageList;
DWORD dwStyle = WS_CHILD | WS_VISIBLE;
m_TBar.Create( dwStyle, CRect(-1, -1, -1, -1), pParentWnd, nID );
m_Bitmap.LoadBitmap( IDR_TOOLBAR );
m_ImageList.Create( cx, cy, ILC_COLOR8 | ILC_MASK, nBtnNum, nBtnNum );
m_ImageList.Add( &m_Bitmap, RGB(0, 0, 255) );
m_TBar.SetImageList( &m_ImageList );
こうなった。CBitmapクラスにリソース(256色で任意パレットのBMP形式)を読み込む。CImageListクラスをCreateメソッドで生成。フラグで256色(ILC_COLOR8)やマスク(ILC_MASK)も指定。CImageListのAddメソッドでビットマップをイメージリストにセット。SetImageListメソッドでイメージリストをツールバーにセット。SetImageListメソッドの2番目の引数は透過になる色を指定する。上の例では青だ。
え~とこれで多分大丈夫のはず。私の場合はうまく動作しているようです。ちょっと
前回のがいい加減で心残りだったので続編でフォローと言う事で(^^;
なお結局ツールバー用のイメージはPhotoshopで作成して前回貼り付けたボタンイメージは使わなかった。これもまた良くあるパターン(^^;