Bouton Owner draw

Helau Messages postés 38 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 25 août 2005 - 2 juin 2003 à 16:40
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 4 juin 2003 à 14:55
Bonjour,

Je développe en VC++6 en utilisant les MFC,
J'ai créé des check button ownerdraw pour pourvoir changer la police de caractères; Mais en faisant ça, je n'arrive plus à les "checker" en cliquant dessus.

Est-ce que quelqu'un sais comment est gérer le dessin (c une icone ou qqch dans le genre ?) pour que je puisse reproduire le comportement standard du bouton.
A moins qu'il y ait une autre solution pour changer ma font.

Je vous remercie.
Helau.

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 juin 2003 à 16:56
t'as pas besoin d'ownerdraw pour changer la police.
message WM_SETFONT suffit.
BruNews, ciao...
0
Helau Messages postés 38 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 25 août 2005
2 juin 2003 à 17:02
Oui, mais je n'ai pas réussi à l'utiliser correctement !
Helau.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 juin 2003 à 17:06
SendMessage(hcheck, WM_SETFONT, (long) hfont, 1);
ou peut se trouver l'embrouille ?
Faut insister.
BruNews, ciao...
0
Helau Messages postés 38 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 25 août 2005
4 juin 2003 à 11:05
Effectivement, il n'y a pas d'embrouille quand on sait faire ou qu'on sait où chercher !
En tout cas, je te remercie parce que tu m'a mis sur la voie, j'ai utilisé SensMessageToDescendant comme ça j'ai pu sauver la font de tous mes contrôles d'un coup !...

Pour info, j'ai vu qu'il était possible d'envoyer des message à tos les descendants, à un handle donné, à un controle donné, est-ce qu'il est aussi possible d'envoyer un message à une classe donnée pour que toutes les instances de la classe soient modifiées ?

Encore merci.
Helau.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2003 à 13:30
Tu parles bien de "classe" au sens Win32 donc classe de fenetre et NON sens C++.
Si est classe win32, alors suffit de la modifier en 1 seul endroit et 1 seule fois pour que toutes les instances de cette classe a l'interieur de ton processus soient affectees.
tu emploies SetClassLong() pour cela.
exemple:
SetClassLong(hDlg, GCL_HICON, (long)LoadIcon(m_hInst, MAKEINTRESOURCE(IDI_APP)));
et toutes les dialogbox standards se verront affectees cette icone avec appel fait une seule fois.
BruNews, ciao...
0
Helau Messages postés 38 Date d'inscription vendredi 2 mai 2003 Statut Membre Dernière intervention 25 août 2005
4 juin 2003 à 13:58
Effectivement, je pensais bien à des fenêtres ou des dérivés.

Cette méthode a l'air intéressante, mais j'ai jeté un coup d'oeil sur MSDN pour en savoir un peu plus. Apparement, on peu changer pas mal de choses, mais on ne peut pas envoyer n'importe quel message.

Par exemple, j'ai une classe MyStatic, et je veux envoyer WM_SETFONT à toutes les instances de cette classe et uniquement de cette classe.
SendMessage l'envoie à un en particulier
SendMessageToDescendant l'envoie à tous les fils,
Je ne sais pas si SetClassLong me permet de le faire,
Et je ne sais pas si une autre methode le permettrai.

Helau.
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
4 juin 2003 à 14:55
Il y a aussi SetWindowLong mais pas pour font.
BruNews, ciao...
0
Rejoignez-nous