如何搭配工具列使用 Hot-Tracking
當滑鼠指標停留在物件上方時,物件會變得高亮。 如果已啟用熱追蹤,則會標示顯示熱項目。 使用 TBSTYLE_FLAT 樣式建立的工具列,或者使用 Visual Styles的工具列,預設情況下會支援熱追蹤。
熱追蹤需要您建立圖片清單,因此,您無法使用 TB_ADDBITMAP 訊息或 CreateToolbarEx 函式來建立工具列。
當滑鼠停留在工具列按鈕上時,該按鈕會外框以強調顯示。 下圖顯示已啟用熱追蹤的工具列;當螢幕快照拍攝時,滑鼠指標停留在 [儲存] 按鈕上。
如果您要在控制檔的狀態變更時變更工具列按鈕點陣圖,請將不同的影像儲存在 影像清單中,。 例如,某些應用程式有黑白工具列按鈕,這些按鈕會在選取時變成色彩。 這兩個不同的影像會儲存在影像清單中。 工具列支援使用最多三個影像清單。 應用程式通常會有影像的預設、已停用和經常性追蹤清單。 若要設定和擷取熱鍵工具列按鈕的影像清單,請使用 TB_SETHOTIMAGELIST 和 TB_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.
相關主題