Använda bildlistor i en verktygsfältskontroll

Som standard lagras de bilder som används av knapparna i en verktygsfältskontroll som en enda bitmapp. Du kan dock även lagra knappbilder i ett antal bildlistor. Kontrollobjektet i verktygsfältet kan använda upp till tre separata bildlistor:

  • Aktiverad bildlista Innehåller bilder för verktygsfältsknappar som för närvarande är aktiverade.

  • Inaktiverad bildlista Innehåller bilder för verktygsfältsknappar som för närvarande är inaktiverade.

  • Markerad bildlista Innehåller bilder för verktygsfältsknappar som för närvarande är markerade. Den här bildlistan används endast när verktygsfältet använder TBSTYLE_FLAT formatmall.

Dessa bildlistor används av verktygsfältskontrollen när du associerar dem med CToolBarCtrl objektet. Den här associationen utförs genom att anropa CToolBarCtrl::SetImageList, SetDisabledImageList och SetHotImageList.

Som standard använder CToolBar MFC klassen för att implementera MFC-programverktygsfält. Dock kan medlemsfunktionen GetToolBarCtrl användas för att hämta det inbäddade CToolBarCtrl objektet. Du kan sedan göra anrop till CToolBarCtrl medlemsfunktioner med hjälp av det returnerade objektet.

I följande exempel visas den här tekniken genom att tilldela en aktiverad (m_ToolBarImages) och inaktiverad (m_ToolBarDisabledImages) bildlista till ett CToolBarCtrl objekt (m_ToolBarCtrl).

CWinApp* pApp = AfxGetApp();

m_ToolBarImages.Create(16, 16, ILC_COLOR, 4, 4);
m_ToolBarImages.Add(pApp->LoadIcon(IDI_BLK));
m_ToolBarImages.Add(pApp->LoadIcon(IDI_RED));
m_ToolBarImages.Add(pApp->LoadIcon(IDI_YELL));
m_ToolBarImages.Add(pApp->LoadIcon(IDI_WHI));

m_ToolBarDisabledImages.Create(16, 16, ILC_COLOR, 4, 4);
m_ToolBarDisabledImages.Add(pApp->LoadIcon(IDI_DIS_BLK));
m_ToolBarDisabledImages.Add(pApp->LoadIcon(IDI_DIS_RED));
m_ToolBarDisabledImages.Add(pApp->LoadIcon(IDI_DIS_YELL));
m_ToolBarDisabledImages.Add(pApp->LoadIcon(IDI_DIS_WHI));

m_ToolBarCtrl.SetImageList(&m_ToolBarImages);
m_ToolBarCtrl.SetDisabledImageList(&m_ToolBarDisabledImages);

Anmärkning

De bildlistor som används av verktygsfältsobjektet måste vara permanenta objekt. Därför är de ofta datamedlemmar i en MFC-klass; i det här exemplet, huvudramfönstrets klass.

När bildlistorna är associerade med CToolBarCtrl objektet visar ramverket automatiskt rätt knappbild.

Se även

Använda CToolBarCtrl
Kontroller