共用方式為


如何搭配工具列使用 Hot-Tracking

當滑鼠指標停留在物件上方時,物件會變得高亮。 如果已啟用熱追蹤,則會標示顯示熱項目。 使用 TBSTYLE_FLAT 樣式建立的工具列,或者使用 Visual Styles的工具列,預設情況下會支援熱追蹤。

熱追蹤需要您建立圖片清單,因此,您無法使用 TB_ADDBITMAP 訊息或 CreateToolbarEx 函式來建立工具列。

當滑鼠停留在工具列按鈕上時,該按鈕會外框以強調顯示。 下圖顯示已啟用熱追蹤的工具列;當螢幕快照拍攝時,滑鼠指標停留在 [儲存] 按鈕上。

是一個包含三個項目的工具列對話框的截圖,選取的圖示已被框起

如果您要在控制檔的狀態變更時變更工具列按鈕點陣圖,請將不同的影像儲存在 影像清單中,。 例如,某些應用程式有黑白工具列按鈕,這些按鈕會在選取時變成色彩。 這兩個不同的影像會儲存在影像清單中。 工具列支援使用最多三個影像清單。 應用程式通常會有影像的預設、已停用和經常性追蹤清單。 若要設定和擷取熱鍵工具列按鈕的影像清單,請使用 TB_SETHOTIMAGELISTTB_GETHOTIMAGELIST 訊息。

您需要知道的事項

技術

先決條件

  • C/C++
  • Windows 使用者介面程序設計

說明

使用 Hot-Tracking 搭配工具列

下列程式碼範例會建立、填入及指定熱按鈕的圖像列表。

// Create the image list, himlHot.
g_himlHot = ImageList_Create(MYICON_CX,MYICON_CY,ILC_COLOR8,0,4);

// Load a bitmap from a resource file, and add the images to the image list.
// Note that the bitmap contains four images.

hBitmapHot = LoadBitmap(g_hinst, MAKEINTRESOURCE(IDB_HOT));

ImageList_Add(g_himlHot, hBitmapHot, NULL);
   
// Set the image list. 
SendMessage(hwndTB, TB_SETHOTIMAGELIST, 0, (LPARAM)g_himlHot);
   
// Loop to fill the array of TBBUTTON structures.  
for(i=0;i<MAX_BUTTONS;i++)
{
    tbArray[i].iBitmap   = i;                   // Bitmap from image list.
    tbArray[i].idCommand = IDM_BUTTONSTART + i;
    tbArray[i].fsState   = TBSTATE_ENABLED;
    tbArray[i].fsStyle   = BTNS_DROPDOWN;
    tbArray[i].dwData    = 0;
    tbArray[i].iString   = i;
}

DeleteObject(hBitmapHot);    // Delete the loaded bitmap.

使用工具列控件

Windows 通用控件示範 (CppWindowsCommonControls)