Salut,
Lorsque l'on applique le style WS_THICKFRAME (=WS_SIZEBOX) à un control on peut le redimensionner des 4 cotés. Moi je voudrait qu'on ne puisse redimensionner qu'un seul coté.
Quelqu'un sait comment faire ?
Merci d'avance![]()
Salut,
Lorsque l'on applique le style WS_THICKFRAME (=WS_SIZEBOX) à un control on peut le redimensionner des 4 cotés. Moi je voudrait qu'on ne puisse redimensionner qu'un seul coté.
Quelqu'un sait comment faire ?
Merci d'avance![]()
Tu ne peux, à moins que le contrôle ait déjà des fonctionalités prévues pour ça. Si tu fais un contrôle toi-même, tu peux faire ainsi: Intercepter le retour de WM_NCHITTEST et censurer les zones de redimensionnement sur certains cotés...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 case WM_NCHITTEST: retour = DefWindowProc(hWnd, WM_NCHITTEST, wParam, lParam); //Exemple: Interdire le redimensionnement gauche if(HTLEFT == retour) retour = HTBORDER; break;
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.
Ton astuce a l'air de marcher.![]()
Par contre quant j'applique le style WS_THICKFRAME j'ai une bordure vide (qui n'est pas redessinée) tout le tour de mon control (c'est en fait l'espace ou apparait la flêche de redimensionnement). Cette bordure apparait même sur les cotés ou j'ai bloqué le redimensionnement.
Comment je pourrait enlever cette bordure ?
[EDIT] la bordure prend la couleur de fond de la fenêtre principale
Franchement, là, je ne sais pas trop. Je n'ai jamais eu ce genre de problème (il faut dire qu'on donne rarement une bordure aux contrôles en temps normal).
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.
non je voulait dire que avec WS_THICKFRAME ça me fait une bordure et je veur juste l'enlever.Envoyé par Médinoc
![]()
Je ne crois pas qu'il y ait un moyen de supprimer cette bordure, sauf en faisant tout le dessin toi-même (le contrôle doit pour cela traiter les messages WM_NCHITTEST, WM_NCPAINT et WM_NCCALCSIZE).
Ou bien, tu te fais ton propre style de remplacement de WS_THICKFRAME, et tu joues avec WM_NCHITTEST pour dire que telle partie est une zone de redimensionnement...
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.
Partager