|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : avril 2004 Messages : 305 ![]() |
une petite question avant Noël (le papa Noël me répondra-t-il ?)
j'ai écrit une appli qui gère plusieurs messages. WM_WINDOWPOSCHANGED est appelé quand je clique sur le bord de la fenêtre, mais quand je clique sur la barre de titre (ce qui correspond à HTCAPTION, je pense), WM_WINDOWPOSCHANGED n'est pas appelé. Je ne comprends pas pourquoi. Quelqu'un aurait-il une idée de la raison de ce comportement ? Si nécessaire, je peux fournir la fonction qui gère les messages merci et joyeux noël
__________________
L'Opus attire les Prélats |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : avril 2004 Messages : 305 ![]() |
Notez que je prends en compte le message WM_NCLBUTTONDOWN et que wParam vaut bien HTCAPTION quand je clique sur la barre de titre.
__________________
L'Opus attire les Prélats |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() |
WM_WINDOWPOSCHANGED n'est-il pas reçu quand tu relâches le bouton?
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
|
|
00
|
|
|
#4 | ||
|
Membre habitué
![]() Inscription : avril 2004 Messages : 305 ![]() |
Non. Pour être plus précis, le problème que j'ai est le suivant : je lance mon application. Je lance une autre application (n'importe laquelle). Cette dernière se trouve en avant plan et recouvre en partie mon application. Pour faire apparaître mon application en avant plan, je clique sur la barre de titre. Mon application ne change pas de position. Avec Spy++: Code :
__________________
L'Opus attire les Prélats |
||
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() |
J'ai du mal à comprendre, le WM_NCLBUTTONDOWN, tu l'interceptes ou tu laisse DefWindowProc() s'en occuper?
Normalement, DefWindowProc() doit, en réponse à un tel message, déclencher une boucle modale de déplacement de la fenêtre (attention, cela cause de la réentrance).
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant. "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?" Apparently everyone. -- Raymond Chen. Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen. |
|
|
00
|
|
|
#6 |
|
Membre habitué
![]() Inscription : avril 2004 Messages : 305 ![]() |
j'intercepte WM_NCLBUTTONDOWN. Et je l'utilise en effet entre autre au déplacement de la fenêtre (ainsi qu'au redimensionnement si je drag le bord).
Mais ce que ne je comprends pas est la différence de comportement lorsque je clique sur la barre de titre (pas de WM_WINDOWPOSCHANGED) et lorsque je clique sur le bord (WM_WINDOWPOSCHANGED est généré)
__________________
L'Opus attire les Prélats |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com