Jak používat Hot-Tracking s panely nástrojů
Když ukazatel myši najede myší na položku, stane se položka horká. Pokud je zapnuté sledování, zvýrazní se aktuální položka. Panel nástrojů vytvořený pomocí stylu TBSTYLE_FLAT nebo panel nástrojů, který používá Vizuální Styly, ve výchozím nastavení podporuje sledování pohybu myši.
Sledování za běhu vyžaduje, abyste vytvořili seznamy obrázků, a proto nelze použít zprávu TB_ADDBITMAP nebo funkci CreateToolbarEx pro vytvoření panelu nástrojů.
Když najede myší na tlačítko panelu nástrojů, tlačítko je obrysově zvýrazněno. Následující obrázek znázorňuje panel nástrojů s aktivovaným zvýrazňováním; ukazatel myši byl umístěn na tlačítko Uložit v momentě pořízení snímku obrazovky.
Pokud chcete, aby se obrázek tlačítka panelu nástrojů změnil, když se změní stav ovládacího prvku, uložte různé obrázky do seznamů obrázků. Některé aplikace mají například černobílá tlačítka panelu nástrojů, která se při výběru zbarví. Tyto dva různé obrázky jsou uložené v seznamech obrázků. Panely nástrojů podporují až tři seznamy obrázků. Aplikace má obvykle výchozí, neaktivní a sledovaný seznam obrázků. Pokud chcete nastavit a načíst seznamy obrázků pro tlačítka horkého panelu nástrojů, použijte TB_SETHOTIMAGELIST a TB_GETHOTIMAGELIST zprávy.
Co potřebujete vědět
Technologie
Požadavky
- C/C++
- Programování uživatelského rozhraní systému Windows
Instrukce
Použijte Hot-Tracking s panelem nástrojů
Následující příklad kódu vytvoří, vyplní a přiřadí seznam obrázků pro horká tlačítka.
// 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.
Související témata