Bouton personnalisé grâce à une windowclass [dev-c++]

Soyez le premier à donner votre avis sur cette source.

Vue 4 884 fois - Téléchargée 658 fois


Description

Pour une première source, je vais faire simple ;p

Le but de cet exercice de style (mouais...) est de créer un bouton de toute pièce sans utiliser le style BS_OWNERDRAW.
J'utilise une WindowClass afin de préciser une procédure pour la gestion du bouton. À partir de là, on peut modifier le bouton comme une vulgaire fenêtre.
C'est très simple, mais ça peut servir (en tout cas je m'en sers ;).

Conclusion :


Si vous constatez des bugs, surtout dites-le moi !
Au niveau des commentaires, je crois que la source est suffisamment commentée.
Au fait, je développe avec Dev-C++ 4.9.8.5 (béta 5).

Mise à jour du mardi 20 janvier 2004 :
- Ajoute la possibilité de mettre des icônes (avec ou sans texte)
- Le code source est un peu plus condensé (j'ai réunit plusieurs fonctions en une seule, et utilisé l'instruction switch())
- Et puis, euh... j'ai accompagné la source d'une capture d'écran !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_JCDjcd
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
2
c'est bien de le prendre bien : je m'explique : certaine personne m'aurait repondu que ce n'etait pas grave, elles n'ont pas le soucis de faire du code "propre".
JohnEM13
Messages postés
7
Date d'inscription
samedi 18 janvier 2003
Statut
Membre
Dernière intervention
25 février 2006

Ce code est vraiment bien, par contre, je n'arrive pas à distinguer comment controler lorsqu'on click dessus...
RTW
Messages postés
36
Date d'inscription
mercredi 31 décembre 2003
Statut
Membre
Dernière intervention
1 février 2004

Tu as raison JCDjcd, mais je crée les font à chaque fois pour simplifier la source. Dans mes programmes j'utilise des versions modifiées et plus complètes de cette source.

En ce qui concerne la destruction des différents handle, il est vrai que je dois détruire le handle retourné par la fonction SelectObject() et non pas le handle donné en paramètre.
C'est une erreur, je ne la ferais plus, promis !

En tout cas, merci pour tes remarques.
cs_JCDjcd
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
2
Il ne faut pas a chaque fois cree une font, c'est bourrin ...
De plus tu selectionnes les hPen , les hBrush, et les hFont, et puis tu les detruit (DeleteObject) alors qu'ils sont toujours selectionne !!!

Il faut faire plutot :
DeleteObject(SelectObject(hdc,oldFont));
DeleteObject(SelectObject(hdc,oldBrush));
DeleteObject(SelectObject(hdc,oldPen));

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.