2010-01-10 6 views
3

Dans une application win32, je veux avoir un bouton avec une icône qui semble grise lorsque le bouton est désactivé et "plus lumineux" lorsque la souris plane. Je sais que je peux créer trois bitmaps avec un éditeur d'icônes, mais puisque l'icône peut être sélectionnée par l'utilisateur et chargée à partir du disque, je voudrais créer les deux autres versions par programmation. Donc, en commençant par un handle pour une image, je voudrais:
- Créer une nouvelle image avec toutes les couleurs converties en gris.
- Créez une nouvelle image avec toutes les couleurs décalées au blanc ou au jaune. Est-ce que cela peut être fait en utilisant les appels api win32?Comment créer par programmation une version "claire" et une version "grise" d'une icône?

Des exemples dans n'importe quelle langue seront appréciés.

+0

Voulez-vous savoir comment manipuler l'image ou effectuer les appels d'API? –

+0

Aucun problème à faire des appels d'API (après je sais lequel :). Je veux savoir s'il y a des appels API ou de simples arithmétiques binaires pour faire ce genre de manipulation d'image. –

Répondre

1

Peut-être que la bonne vieille DrawState suffira. (Pour une raison quelconque, il est maintenant répertorié comme uniquement disponible à partir de Win2000, ce qui n'est pas vrai.)

Et peut-être pas, dans ce cas, vous pouvez utiliser la fonction SetColorAdjustment.

+0

Merci! 'SetColorAdjustment' est ce que je cherchais. –

0

Si l'icône est sélectionnée par l'utilisateur, contrôlez-vous le format? Sinon, vous voudrez probablement incorporer une bibliothèque d'images ou un processus externe comme DevIL ou Imagemagick qui traitent plus de formats que les API Microsofts sont susceptibles de ..

+0

Oui, je n'accepte que quelques formats d'image de base. Imaginez que j'ai déjà un 'HANDLE' retourné par l'appel de l'API' LoadImage' –

Questions connexes