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 :

Probleme avec AdjustWindowRect et GetClientRect


Sujet :

Windows

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 340
    Points : 177
    Points
    177
    Par défaut Probleme avec AdjustWindowRect et GetClientRect
    J'ai un petit soucis avec ces 2 fonctions. Je veux creer une fenetre avec une certaine taille (disons 100 x 100) pour la zone client. Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Rect rect;
    HWND w;
    
    rect.left = 0;
    rect.top = 0;
    rect.right = 100;
    rect.bottom = 100;
    if (!AdjustWindowRect(&rect, WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, FALSE))
      return NULL;
    
    w = CreateWindow(ECORE_WIN32_WINDOW_CLASS, "",
                     WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
                     x, y,
                     rect.right - rect.left,
                     rect.bottom - rect.top,
                     NULL, NULL, _ecore_win32_instance, NULL);
    if (!w)
      return NULL;
    
    if (GetClientRect(w, &rect))
      printf ("taille %ld %ld\n", rect.right - rect.left, rect.bottom - rect.top);
    la taille affichee est non pas 100 x 100 mais 104 x 100.

    Par contre, si je demande 320 x 200, la taille affichee est la meme que celle demandee.

    Quelqu'un voit-il pourquoi ?

    merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Il y a une largeur minimale pour les fenêtres, et il est possible qu'elle soit supérieure à 100.
    Tu peux essayer de vérifier avec GetSystemMetrics() et SM_CXMIN ou SM_CXMINTRACK...

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 340
    Points : 177
    Points
    177
    Par défaut
    en effet, c'est 112, sur ma machine.

    Il n'y a pas moyen de modifier cette valeur ?

    en tout cas, merci beaucoup !

    edit : apparemment, on peut la modifier avec l'evenement WM_GETMINMAXINFO

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    Je ne pense pas que tu puisses outrepasser SM_CXMIN. Mais tu devrais pouvoir outrepasser SM_CXMINTRACK en traitant le message WM_GETMINMAXINFO dans ta procédure de fenêtre...

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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