Utilisation des listes d'images dans un contrôle de barre d'outils
Par défaut, les images utilisées par les boutons dans un contrôle de barre d'outils sont stockées comme une seule bitmap.Toutefois, vous pouvez également stocker des images de bouton dans un jeu de listes d'images.L'objet contrôle de barre d'outils peut utiliser jusqu'à trois listes d'images distinctes :
La liste d'images active contient des images des boutons de barre d'outils qui sont actuellement activés.
La liste d'images désactivée contient des images des boutons de barre d'outils qui sont actuellement désactivées.
La liste d'images en surbrillance contient des images des boutons de barre d'outils qui sont actuellement mis en surbrillance.Cette liste d'images est utilisée lorsque la barre d'outils utilise le style de TBSTYLE_FLAT .
Ces listes d'images sont utilisées par le contrôle de barre d'outils lorsque vous les associez à l'objet d' CToolBarCtrl .Cette association est obtenue en faisant des appels à CToolBarCtrl::SetImageList, à SetDisabledImageList, et à SetHotImageList.
Par défaut, MFC utilise la classe d' CToolBar pour implémenter des barres d'outils d'application MFC.Toutefois, la fonction membre d' GetToolBarCtrl peut être utilisée pour récupérer l'objet incorporé d' CToolBarCtrl .Vous pouvez créer des appels aux fonctions membres d' CToolBarCtrl à l'aide de l'objet retourné.
L'exemple suivant illustre cette technique en assignant une liste d'images active (m_ToolBarImages) et effacée (d'm_ToolBarDisabledImages) à un objet d' CToolBarCtrl (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);
[!REMARQUE]
Les listes d'images utilisées par l'objet barre d'outils doivent être des objets permanents.Pour cette raison, elles sont fréquemment des données membres d'une classe MFC ; dans cet exemple, la classe de fenêtre frame principale.
Une fois les listes d'images sont associées à l'objet d' CToolBarCtrl , l'infrastructure affiche automatiquement l'image de bouton appropriée.