IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Traitement du message WM_GETMINMAXINFO


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 217
    Points : 105
    Points
    105
    Par défaut Traitement du message WM_GETMINMAXINFO
    Bonjour. Je dois imposer une taille maximale à ma fenêtre, donc je traite le message WM_GETMINMAXINFO. Mais cette taille maximale doit dans tous les cas être inférieure ou égale à la taille d'une fenêtre maximisée.
    J'ai donc écrit le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    case WM_GETMINMAXINFO:
    	if (((MINMAXINFO *)lParam)->ptMaxSize.x > TailleMax.x) {
    		((MINMAXINFO *)lParam)->ptMaxSize.x = TailleMax.x;}
    	if (((MINMAXINFO *)lParam)->ptMaxSize.y > TailleMax.y) {
    		((MINMAXINFO *)lParam)->ptMaxSize.y = TailleMax.y;}
    Pourtant ça ne marche pas correctement : la fenêtre dépasse par en bas, comme si elle voulait afficher sur la barre des tâches.
    Comment trouver la vrai hauteur maximale, c'est-à-dire le nombre de pixels entre le haut de l'écran et le bas, sans la barre des tâches?

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 217
    Points : 105
    Points
    105
    Par défaut
    Il faut utiliser GetSystemMetrics() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ((MINMAXINFO *)lParam)->ptMaxSize.x = min (TailleMax.x, GetSystemMetrics (SM_CXMAXIMIZED));
    ((MINMAXINFO *)lParam)->ptMaxSize.y = min (TailleMax.y, GetSystemMetrics (SM_CYMAXIMIZED));
    ((MINMAXINFO *)lParam)->ptMaxTrackSize.x = min (TailleMax.x, GetSystemMetrics (SM_CXMAXTRACK));
    ((MINMAXINFO *)lParam)->ptMaxTrackSize.y = min (TailleMax.y, GetSystemMetrics (SM_CYMAXTRACK));
    ((MINMAXINFO *)lParam)->ptMinTrackSize = TailleMin;

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/08/2013, 12h24
  2. Traitement de message trop long C++/WINAPI
    Par sex4fun dans le forum C++
    Réponses: 4
    Dernier message: 12/02/2008, 10h15
  3. Application Console et Traitement de messages
    Par farfadet dans le forum C++
    Réponses: 2
    Dernier message: 03/07/2007, 09h49
  4. Optimisation - Traitement de messages et GUI
    Par buzzkaido dans le forum C++
    Réponses: 4
    Dernier message: 08/01/2007, 13h40
  5. Fonction de traitements des messages VC\C++
    Par Pe04 dans le forum MFC
    Réponses: 6
    Dernier message: 23/02/2006, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo