TB_SETIMAGELIST メッセージ
ツール バーが既定の状態のボタンを表示するために使用する画像リストを設定します。
パラメーター
-
wParam
-
バージョン 5.80。 リストのインデックス。 イメージ リストを 1 つだけ使用する場合、または以前のバージョンの共通コントロールを使用する場合は、 wParam を 0 に設定します。 複数の画像リストの使用の詳細については、「解説」を参照してください。
-
lParam
-
設定するイメージ リストへのハンドル。 このパラメーターが NULL の場合、ボタンに画像は表示されません。
戻り値
既定の状態でボタンを表示するために使用したイメージ リストのハンドルを返します。イメージ リストが以前に設定されていない場合は NULL を 返します。
解説
Note
ツール バーが破棄された後、アプリケーションはイメージ リストを解放する役割を担います。
TB_SETIMAGELIST メッセージをTB_ADDBITMAPと組み合わせることはできません。 また、内部的にTB_ADDBITMAPを呼び出す CreateToolbarEx で作成されたツール バーでは使用できません。 CreateToolbarEx を使用してツール バーを作成するか、TB_ADDBITMAPを使用してイメージを追加すると、ツール バーはイメージ リストを内部的に管理します。 TB_SETIMAGELISTで変更しようとすると、予期しない結果になります。
バージョン 5.80 以降の共通コントロールでは、ボタンイメージは同じ画像リストから取得する必要はありません。 ツール バー ボタンの画像に複数の画像リストを使用するには:
- wParam (バージョン番号) が 5 に設定されたCCM_SETVERSION メッセージをツール バー コントロールに送信して、複数のイメージ リストを有効にします。
- 使用する画像リストごとに、ツール バー コントロールに TB_SETIMAGELIST メッセージを送信します。 リストの識別に使用するアプリケーション定義の wParam 値に wParam を設定します。 lParam をリストの HIMAGELIST ハンドルに設定します。
- 各ボタンについて、ボタンの TBBUTTON 構造体の iBitmap メンバーを MAKELONG(iIndex, iImageID) に設定します。 iImageID 値は、手順 2 で定義した適切なイメージ リストの ID です。 iIndex 値は、そのリスト内の特定のイメージのインデックスです。
- ツール バー コントロールにTB_ADDBUTTONS メッセージを送信して、ボタン を 追加します。
次のコード フラグメントは、3 つの異なる画像リストの画像を含む 5 つのボタンをツール バーに追加する方法を示しています。 CCM_SETVERSION メッセージでは、複数のイメージ リストのサポートが有効になります。 その後、イメージ リストが設定され、0 から 2 の ID が割り当てられます。 ボタンには、次のように画像リストから画像が割り当てられます。
- ボタン 0 は、インデックスが 1 の画像リスト 0 (ahim[0]) からの値です。
- ボタン 1 は、インデックスが 1 の画像リスト 1 (ahim[1]) から取得したものです。
- ボタン 2 は、インデックスが 1 の画像リスト 2 (ahim[2]) から取得したものです。
- ボタン 3 は、インデックスが 2 の画像リスト 0 (ahim[0]) からの値です。
- ボタン 4 は、インデックスが 3 の画像リスト 1 (ahim[1]) からの値です。
最後に、TB_ADDBUTTONS メッセージを含むボタンがツール バー コントロール に 追加されます。
//Enable multiple image lists
SendMessage(hwndTB, CCM_SETVERSION, (WPARAM) 5, 0);
//Set the image lists and assign them IDs of 0-2
SendMessage(hwndTB, TB_SETIMAGELIST, 0, (LPARAM)ahiml[0]);
SendMessage(hwndTB, TB_SETIMAGELIST, 1, (LPARAM)ahiml[1]);
SendMessage(hwndTB, TB_SETIMAGELIST, 2, (LPARAM)ahiml[2]);
// Create the five buttons
TBBUTTON rgtb[5];
//... initialize the TBBUTTON structures as usual ...
//Assign images to each button
rgtb[0].iBitmap = MAKELONG(1, 0);
rgtb[1].iBitmap = MAKELONG(1, 1);
rgtb[2].iBitmap = MAKELONG(1, 2);
rgtb[3].iBitmap = MAKELONG(2, 0);
rgtb[4].iBitmap = MAKELONG(3, 1);
// Add the five buttons to the toolbar control
SendMessage(hwndTB, TB_ADDBUTTONS, 5, (LPARAM)(&rgtb);
必要条件
| 要件 | 値 |
|---|---|
| サポートされている最小のクライアント |
Windows Vista [デスクトップ アプリのみ] |
| サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
| Header |
|