TB_SETPRESSEDIMAGELIST訊息

設定工具列用來顯示處於按下狀態的按鈕影像清單。

參數

wParam

影像清單的索引。 如果您只使用一個影像清單,請將此參數設定為零。 如需使用多個影像清單的詳細資訊,請參閱。

lParam

要設定之影像清單的控制碼。 如果此參數為 Null,則按鈕中不會顯示任何影像。

傳回值

傳回先前用來顯示按鈕處於按下狀態的影像清單控制碼,如果先前未設定這類影像清單,則傳回 Null

備註

注意

您的應用程式負責在工具列終結之後釋放影像清單。

無法將TB_SETPRESSEDIMAGELIST訊息與TB_ADDBITMAP合併。 它也無法與使用 CreateToolbarEx建立的工具列搭配使用,這會在內部呼叫 TB_ADDBITMAP 。 當您使用 CreateToolbarEx 建立工具列或使用 TB_ADDBITMAP 來新增影像時,工具列會在內部管理映射清單。 嘗試以 TB_SETPRESSEDIMAGELIST 修改它,會產生無法預期的結果。

按鈕影像不需要來自相同的影像清單。 若要針對工具列按鈕影像使用多個影像清單:

  1. 藉由傳送工具列控制項搭配wParam (版本號碼) 設定為 5 的CCM_SETVERSION訊息,以啟用多個影像清單。
  2. 針對您想要使用的每個影像清單,傳送工具列控制項 TB_SETPRESSEDIMAGELIST 訊息。 將 wParam 設定為應用程式定義的 wParam 值,以用來識別清單。 將 lParam 設定為清單的 HIMAGELIST 控制碼。
  3. 針對每個按鈕,將按鈕TBBUTTON結構的iBitmap成員設定為 MAKELONG (iIndexiImageID) 。 iImageID值是步驟 2 中所定義之適當影像清單的識別碼。 iIndex值是該清單中特定影像的索引。
  4. 藉由傳送工具列 控制項TB_ADDBUTTONS訊息 來新增按鈕。

下列程式碼片段說明如何將五個按鈕新增至工具列,其中包含來自三個不同影像清單的影像。 支援多個影像清單會使用 CCM_SETVERSION 訊息來啟用。 然後,影像清單會設定並指派 0-2 的識別碼。 按鈕會從影像清單指派影像,如下所示:

  • 按鈕 0 來自影像清單零, (ahim[0]) 索引為 1。
  • 按鈕 1 來自影像清單一個 (ahim[1],) 索引為 1。
  • 按鈕 2 來自影像清單兩個 (ahim[2]) ,索引為 1。
  • 按鈕 3 來自影像清單零 (ahim[0]) 索引為 2。
  • 按鈕 4 來自影像清單,其中一個 (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);

規格需求

需求
最低支援的用戶端
Windows Vista [僅限傳統型應用程式]
最低支援的伺服器
Windows Server 2008 [僅限傳統型應用程式]
標頭
Commctrl.h

另請參閱

參考

TB_GETPRESSEDIMAGELIST

其他資源

MAKELONG