2006-01-19

続256色のツールバー  [by miyachi]

え~先日書いた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で作成して前回貼り付けたボタンイメージは使わなかった。これもまた良くあるパターン(^^;

2006-01-19 17:29:15 - miyachi - [プログラミング] -

コメント一覧

コメント無し

コメントを書く

このアイテムは閲覧専用です。コメントの投稿、投票はできません。