Taille minimum pour une fenêtre

Signaler
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
-
Bonjour

Comment faire pour empecher une fenêtre de faire moins qu'un certaine taille. Faut-il traiter WM_SIZE ou WM_SIZING en comment?

Merci

3 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
Semble impec avec WM_SIZING.
RECT *prc = (RECT*) lParam;
if((prc->bottom - prc->top) < HAUTMIN) tu changes les valeurs avant de retourner 1.
idem pour la largeur.
BruNews, ciao...
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Ah oui bein sur moi comme un con j'utilisais SetWindowPos au lien de modifier directement lParam et ca me faisait un gros clignotement
Messages postés
162
Date d'inscription
lundi 12 novembre 2007
Statut
Membre
Dernière intervention
17 juillet 2010
3
Bonjour.

Désolé pour la date d'envoi de cette réponse, mais j'ai trouvé une solution plus adaptée que l'utilisation de WM_SIZING, et comme certains utilisateurs de ce site peuvent tomber sur ce message, je l'envoie quand même.

Il suffit d'utiliser le message WM_GETMINMAXINFO comme suit :

case WM_GETMINMAXINFO:
{
MINMAXINFO * mmiStruct = (MINMAXINFO*)lParam;

POINT ptPoint;

ptPoint.x = 300;	//Largeur minimale de la fenêtre
ptPoint.y = 300;	//Hauteur minimale de la fenêtre
mmiStruct->ptMinTrackSize = ptPoint;

ptPoint.x = GetSystemMetrics(SM_CXMAXIMIZED);	//Largeur maximale de la fenêtre
ptPoint.y = GetSystemMetrics(SM_CYMAXIMIZED);	//Hauteur maximale de la fenêtre
mmiStruct->ptMaxTrackSize = ptPoint;

return 0;
}


En espérant que cette solution puisse aider quelqu'un...

Cordialement, Greg.