La raison à cela est que le MFC CToolbar classe utilise une liste d'images à l'interne qui est initialisé à 16 couleurs. La solution est de créer sa propre liste d'images et de dire à la barre d'outils à utiliser à la place. Je sais que cela fonctionne pour de 256 couleurs, mais je n'ai pas testé avec plus de bits de profondeur de:
Tout d'abord, chargez une de 256 couleurs bitmap à partir d'une ressource:
Il est également possible que la nouvelle version MFC dans VS2008 peut avoir résolu ce problème car je sais que de nombreux éléments de l'INTERFACE utilisateur ont été mis à jour. Je n'ai pas réellement essayé de l'utiliser mais je ne peux pas en être certain.
Je n'arrive pas à obtenir ce code de travail. Avec un peu de bricolage, j'ai réussi à le remettre en marche, mais je reçois complètement vide icônes. Des idées? Avez-vous créé une ressource bitmap d'une taille adaptée à votre projet et appelé CImageList::Créer avec les paramètres appropriés? Oui, j'ai pris précédemment 16colour bit map et converti à l'aide de visual studio. Comme pour la Créer, j'ai suivi vos instructions à la lettre, à l'exception : CImageList m_imagelist; m_imagelist.Créer(20, 20, ILC_COLOR8, 4, 4); ... Bien sûr, je le comprends. Mes icônes sont 16,15 et j'ai changé ça (désolé j'ai oublié de le mentionner) et je sais que l'image est de 256 couleurs (8 bits.) Le peu qui est à moi est de savoir comment le faire fonctionner avec la déclaration : Cela a fonctionné pour moi, en utilisant ILC_COLOR32 en place de ILC_COLOR8 pour une couleur de 32 bits bitmap! Nice. 😉
La raison à cela est que le MFC CToolbar classe utilise une liste d'images à l'interne qui est initialisé à 16 couleurs. La solution est de créer sa propre liste d'images et de dire à la barre d'outils à utiliser à la place. Je sais que cela fonctionne pour de 256 couleurs, mais je n'ai pas testé avec plus de bits de profondeur de:
Tout d'abord, chargez une de 256 couleurs bitmap à partir d'une ressource:
Ensuite, créez un 256 couleurs de l'image de la liste et ajouter notre bitmap:
Enfin, nous devons dire à la barre d'outils à utiliser la nouvelle image de la liste:
Il est également possible que la nouvelle version MFC dans VS2008 peut avoir résolu ce problème car je sais que de nombreux éléments de l'INTERFACE utilisateur ont été mis à jour. Je n'ai pas réellement essayé de l'utiliser mais je ne peux pas en être certain.
Avez-vous créé une ressource bitmap d'une taille adaptée à votre projet et appelé CImageList::Créer avec les paramètres appropriés?
Oui, j'ai pris précédemment 16colour bit map et converti à l'aide de visual studio. Comme pour la Créer, j'ai suivi vos instructions à la lettre, à l'exception : CImageList m_imagelist; m_imagelist.Créer(20, 20, ILC_COLOR8, 4, 4); ...
Bien sûr, je le comprends. Mes icônes sont 16,15 et j'ai changé ça (désolé j'ai oublié de le mentionner) et je sais que l'image est de 256 couleurs (8 bits.) Le peu qui est à moi est de savoir comment le faire fonctionner avec la déclaration :
Cela a fonctionné pour moi, en utilisant ILC_COLOR32 en place de ILC_COLOR8 pour une couleur de 32 bits bitmap! Nice. 😉
OriginalL'auteur Stu Mackellar
La solution a fonctionné sans faille, vous avez seulement besoin de le fixer un peu:
OriginalL'auteur Victor