Utilisation de listes d'images dans un contrôle ToolBar
Par défaut, les images utilisées par les boutons d’un contrôle de barre d’outils sont stockées sous forme de bitmap unique. Toutefois, vous pouvez également stocker des images de bouton dans un ensemble de listes d’images. L’objet de contrôle de barre d’outils peut utiliser jusqu’à trois listes d’images distinctes :
La liste d’images activée contient des images pour les boutons de barre d’outils actuellement activés.
La liste d’images désactivée contient des images pour les boutons de barre d’outils actuellement désactivés.
La liste d’images mise en surbrillance contient des images pour les boutons de barre d’outils actuellement mis en surbrillance. Cette liste d’images est utilisée uniquement lorsque la barre d’outils utilise le style ToSTYLE_FLAT.
Ces listes d’images sont utilisées par le contrôle de barre d’outils lorsque vous les associez à l’objet CToolBarCtrl
. Cette association est effectuée en effectuant des appels à CToolBarCtrl ::SetImageList, SetDisabledImageList et SetHotImageList.
Par défaut, MFC utilise la CToolBar
classe pour implémenter des barres d’outils d’application MFC. Toutefois, la GetToolBarCtrl
fonction membre peut être utilisée pour récupérer l’objet incorporé CToolBarCtrl
. Vous pouvez ensuite effectuer des appels aux fonctions membres à CToolBarCtrl
l’aide de l’objet retourné.
L’exemple suivant illustre cette technique en affectant une liste d’images activée (m_ToolBarImages
) et désactivée (m_ToolBarDisabledImages
) à un CToolBarCtrl
objet (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 de barre d’outils doivent être des objets permanents. Pour cette raison, ils sont généralement des membres de données d’une classe MFC ; dans cet exemple, la classe de fenêtre de cadre principale.
Une fois que les listes d’images sont associées à l’objet CToolBarCtrl
, l’infrastructure affiche automatiquement l’image de bouton appropriée.