共用方式為


如何搭配工具列使用熱追蹤

當滑鼠指標停留在專案上方時,專案會變成經常性。 如果已啟用熱追蹤,則會反白顯示作用中的專案。 使用 TBSTYLE_FLAT 樣式或使用 可視化樣式建立的工具列,預設支援熱追蹤。

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

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

screen shot of a dialog box with a three-item toolbar; the selected icon is outlined

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

您需要知道的事項

技術

必要條件

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

指示

搭配工具列使用熱追蹤

下列程式代碼範例會建立、填滿並指派熱按鈕的影像清單。

// 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)