Sdílet prostřednictvím


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.

snímek obrazovky dialogového okna s panelem nástrojů se třemi položkami; vybraná ikona je nastíněná

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.

Použití ovládacích prvků panelu nástrojů

ukázka běžných ovládacích prvků Windows (CppWindowsCommonControls)