TB_SETPRESSEDIMAGELIST メッセージ

ツール バーのボタンを押された状態で表示するために使用される画像のリストを設定します。

パラメーター

wParam

画像リストのインデックス。 画像リストを 1 つだけ使用する場合は、このパラメータを 0 に設定します。 複数の画像リスト使用の詳細については、「解説」を参照してください。

lParam

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

戻り値

ボタンを押された状態で表示するために以前使用された画像リストへのハンドルが返されます。そのような以前設定された画像リストがない場合は NULL が返されます。

解説

Note

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

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

すべてのボタン画像が同じ画像リストに属している必要はありません。 ツール バーのボタンの画像用に複数の画像リストを使用する手順は次のとおりです。

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

次のコード フラグメントでは、5 つのボタンを 1 つのツール バーに追加する方法を示します。画像は 3 つの異なる画像リストからのものです。 複数画像リストのサポートが CCM_SETVERSION メッセージを使用して有効化されます。 その後で、複数の画像リストが設定されて 0 から 2 までの ID が割り当てられます。 ボタンには、次のように画像リストから画像が割り当てられます。

  • ボタン 0 には画像リスト 0 (ahim[0])、インデックス 1 から。
  • ボタン 1 には画像リスト 1 (ahim[1])、インデックス 1 から。
  • ボタン 2 には画像リスト 2 (ahim[2])、インデックス 1 から。
  • ボタン 3 には画像リスト 0 (ahim[0])、インデックス 2 から。
  • ボタン 4 には画像リスト 1 (ahim[1])、インデックス 3 から。

最後に、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_SETPRESSEDIMAGELIST, 0, (LPARAM)ahiml[0]);
    SendMessage(hwndTB, TB_SETPRESSEDIMAGELIST, 1, (LPARAM)ahiml[1]);
    SendMessage(hwndTB, TB_SETPRESSEDIMAGELIST, 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 2008 [デスクトップ アプリのみ]
ヘッダー
Commctrl.h

関連項目

リファレンス

TB_GETPRESSEDIMAGELIST

その他のリソース

MAKELONG