Jak używać Hot-Tracking z paskami narzędzi
Gdy wskaźnik myszy najecha kursorem na element, element staje się gorący. Jeśli śledzenie gorąca jest włączone, wyróżniono gorący element. Pasek narzędzi utworzony ze stylem TBSTYLE_FLAT lub pasek narzędzi korzystający z Stylów wizualnychobsługuje śledzenie elementów na ekranie domyślnie.
Śledzenie na gorąco wymaga utworzenia list obrazów; w związku z tym nie można użyć komunikatu TB_ADDBITMAP ani funkcji CreateToolbarEx, aby utworzyć pasek narzędzi.
Po najechaniu kursorem myszy na przycisk paska narzędzi, przycisk zostanie obrysowany, aby go podkreślić. Poniższa ilustracja przedstawia pasek narzędzi z włączonym śledzeniem na gorąco; wskaźnik myszy znajdował się na przycisku Zapisz, gdy zrzut ekranu został wykonany.
Jeśli chcesz, aby mapa bitowa przycisku paska narzędzi zmieniała się po zmianie stanu kontrolki, zapisz różne obrazy na listach obrazów . Na przykład niektóre aplikacje mają czarne i białe przyciski paska narzędzi, które stają się kolorowe po wybraniu. Dwa różne obrazy są przechowywane na listach obrazów. Paski narzędzi obsługują maksymalnie trzy listy obrazów. Zazwyczaj aplikacja posiada domyślną, nieaktywną i interaktywną listę obrazów. Aby ustawić i pobrać listy obrazów dla przycisków gorącego paska narzędzi, użyj komunikatów TB_SETHOTIMAGELIST i TB_GETHOTIMAGELIST.
Co musisz wiedzieć
Technologie
Warunki wstępne
- C/C++
- Programowanie interfejsu użytkownika systemu Windows
Instrukcje
Używanie Hot-Tracking z paskiem narzędzi
Poniższy przykład kodu tworzy, wypełnia i przypisuje listę obrazów dla przycisków gorących.
// 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.
Tematy pokrewne