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(iIndex,iImageID)。 iImageID 值是步驟 2 中定義之適當映射清單的標識碼。 iIndex 值是該清單中特定影像的索引。
  4. 藉由傳送工具列控件TB_ADDBUTTONS訊息來新增按鈕。

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

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