EDIT avec WM_EX_CLIENTEDGE

Résolu
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 10 avril 2005 à 17:00
cs_PupetMaster Messages postés 13 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 11 avril 2005 - 11 avril 2005 à 00:02
Bonjour



J'ai un petit problème un peu difficile à expliquer:

J'ai une fenêtre sans le style WS_CHILDWINDOW qui a une child edit. Je
dessine par dessus l'edit avec un dc de la fenêtre mère. Le problème,
c'est que quand je veux enlever ce truc que je dessine, je fais
InvalidateRect(hedit, 0, 1), mais l'edit est redessiné partout sauf sur
la bordure (l'edit a le style WS_EX_CLIENTEDGE). Quand j'enlève
WS_EX_CLIENTEDGE tout va bien, la fenêtre est complètement redessinée.
Sauf que moi je voudrais garder ce style...

Vous pouvez m'aider? Merci

3 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
10 avril 2005 à 18:05
J'ai un peu l'impression de parler tout seul, mais j'ai trouvé.

WM_NCPAINT ne fonctionne pas comme WM_PAINT, il suffit ici d'envoyer un
WM_NCPAINT avec wParam=1 pour redessiner toute la zone non_cliente.
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
10 avril 2005 à 18:02
J'ai compris d'où ca vient: la bordure ne fait partie de la zone client
et n'est donc pas prise en compte par InvalidateRect. Je cherche donc
maintenant à forcer le refraichissement de la zone non-cliente, mais je
ne vois pas comment faire.
0
cs_PupetMaster Messages postés 13 Date d'inscription samedi 5 octobre 2002 Statut Membre Dernière intervention 11 avril 2005
11 avril 2005 à 00:02
Ca m'a fait plaisir de t'aider

Pupet Master
0
Rejoignez-nous