英語で読む

次の方法で共有


TB_SETIMAGELIST メッセージ

ツール バーで既定の状態のボタンを表示するために使用するイメージ リストを設定します。

パラメーター

wParam

バージョン 5.80。 リストのインデックス。 イメージ リストを 1 つだけ使用する場合、または以前のバージョンの共通コントロールを使用する場合は、wParam を 0 に設定します。 複数のイメージ リストの使用に関する詳細については、「コメント」を参照してください。

lParam

設定するイメージ リストへのハンドル。 このパラメーターが NULL の場合は、ボタン内に画像は表示されません。

戻り値

既定の状態でボタンを表示するために以前使用したイメージ リストのハンドルを返します。イメージ リストが以前に設定されていない場合は NULL を返します。

解説

注意

ツール バーの破棄後にイメージ リストを解放することはアプリケーション側の責任です。

TB_SETIMAGELIST メッセージを TB_ADDBITMAP と組み合わせることはできません。 また、CreateToolbarEx (TB_ADDBITMAP を内部で呼び出します) を使用して作成されたツールバーと共に使用することはできません。 CreateToolbarEx を使用してツール バーを作成する場合や、TB_ADDBITMAP を使用して画像を追加する場合は、ツール バーによってイメージ リストが内部で管理されます。 TB_SETIMAGELIST を使用して変更を加えようとした場合の結果は予測できません。

バージョン 5.80 以降の共通コントロールでは、ボタン イメージを同じイメージ リストから取得する必要はありません。 ツール バーのボタンの画像用に複数の画像リストを使用する手順は次のとおりです。

  1. ツール バー コントロールに wParam (バージョン番号) を 5 に設定した CCM_SETVERSION メッセージを送信して、複数のイメージ リストを有効にします。
  2. 使用するイメージ リストごとに 1 件の TB_SETIMAGELIST メッセージをツール バー コントロールに送信します。 リストの識別に使用されるアプリケーションで定義された wParam の値に wParam を設定します。 リストの HIMAGELIST ハンドルに lParam を設定します。
  3. 各ボタンの TBBUTTON 構造体の iBitmap メンバーを MAKELONG(iIndex, iImageID) に設定します。 iImageID の値は、ステップ 2 で定義された該当する画像リストの ID です。 iIndex の値は、リスト内でのその画像のインデックスです。
  4. ツール バーに TB_ADDBUTTONS メッセージを送信してボタンを追加します。

次のコード フラグメントでは、5 つのボタンを 1 つのツール バーに追加する方法を示します。画像は 3 つの異なる画像リストからのものです。 複数画像リストのサポートは、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);

要件

要件 Value
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 (デスクトップ アプリのみ)
ヘッダー
Commctrl.h

関連項目

MAKELONG