如何搭配工具列使用熱追蹤
當滑鼠指標停留在專案上方時,專案會變成經常性。 如果已啟用熱追蹤,則會反白顯示作用中的專案。 使用 TBSTYLE_FLAT 樣式或使用 可視化樣式建立的工具列,預設支援熱追蹤。
熱追蹤需要您建立映像清單;因此,您無法使用 TB_ADDBITMAP 訊息或 CreateToolbarEx 函式來建立工具列。
當滑鼠停留在工具列按鈕上時,會概述按鈕以反白顯示它。 下圖顯示已啟用熱追蹤的工具列;當螢幕快照拍攝時,滑鼠指標停留在 [儲存] 按鈕上。
如果您想要在控件的狀態變更時變更工具列按鈕點陣圖,請將不同的影像儲存在 影像清單中。 例如,某些應用程式有黑白工具列按鈕,這些按鈕會在選取時變成色彩。 這兩個不同的影像會儲存在影像清單中。 工具列支援使用最多三個影像清單。 應用程式通常會有影像的預設、已停用和經常性追蹤清單。 若要設定和擷取作用中工具列按鈕的影像清單,請使用TB_SETHOTIMAGELIST和TB_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.
相關主題