Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Un bouton "minimiser" perso

1 réponse
Avatar
Vincent Jacques
Bonjour à tous,

Pour mettre un bouton "minimiser" personalisé sur une fenetre pas
rectangulaire je fait d'abord des tests sur une fenetre créée avec le
style WS_OVERLAPPEDWINDOW, et dont je ne modifie pas le HRGN.

Je gere le WM_NCHITTEST en renvoyant:
- HTMINBUTTON si le curseur est sur le bouton minimiser personalisé (un
simple rectangle dessiné dans la zone client),
- DefWindowProc(...) sinon.

Quand je clique sur le bouton minimiser perso, le bouton minimiser de la
bare de titre s'enfonce, mais la fenetre n'est pas réduite, alors
qu'elle l'est bien si je clique sur le bouton minimiser de la barre de
titre.

Comment s'explique cela? Je pensais que traiter le WM_NCHITTEST suffisait.

Merci d'avance de votre aide.

Vincent Jacques.

1 réponse

Avatar
Christian ASTOR
Vincent Jacques wrote:

Quand je clique sur le bouton minimiser perso, le bouton minimiser de la
bare de titre s'enfonce, mais la fenetre n'est pas réduite, alors
qu'elle l'est bien si je clique sur le bouton minimiser de la barre de
titre.
Comment s'explique cela? Je pensais que traiter le WM_NCHITTEST suffisait.



Il faut envoyer WM_SYSCOMMAND & SC_MINIMIZE sur eg WM_LBUTTONUP
(après avoir fait un ReleaseCapture(), la souris étant capturée
auparavant sur le WM_NCLBUTTONDOWN - c'est une méthode parmi d'autres)