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

MFC Discussion :

Redimensionner une fenêtre parente à partir d'une autre créée à la volée


Sujet :

MFC

  1. #1
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut Redimensionner une fenêtre parente à partir d'une autre créée à la volée
    Hello !
    Je m'explique.
    J'ai une application qui fournit à un plugin que je développe un HWND. Lors de l'initialisation du plugin, je récupère aussi le HINSTANCE. Mon problème est que lorsque je crée un nouvelle fenêtre à partir de la fenêtre parente, celle-ci n'est pas redimensionnée à la bonne taille. Si je la maximize, je vois ma fenêtre fille avec la taille adéquate, mais ça ne m'intéresse pas vraiment

    J'utilise un code tel que celui-ci pour initialiser ma fenêtre (ptr étant mon HWND sous la forme d'un void*) :
    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
    23
    static LPCSTR windowClass = 0;
             if (!windowClass) {
                 WNDCLASSEX wcex;
                 wcex.cbSize         = sizeof(WNDCLASSEX);
                 wcex.style          = CS_HREDRAW | CS_VREDRAW;
                 wcex.lpfnWndProc    = DefWindowProc;
                 wcex.cbClsExtra     = 0;
                 wcex.cbWndExtra     = 0;
                 wcex.hInstance      = hInstance;
                 wcex.hIcon          = NULL;
                 wcex.hCursor        = LoadCursor(NULL, IDC_ARROW);
                 wcex.hbrBackground  = (HBRUSH)(COLOR_WINDOW+1);
                 wcex.lpszMenuName   = NULL;
                 wcex.lpszClassName  = "test";
                 wcex.hIconSm        = NULL;
     
                 windowClass = (LPCSTR)RegisterClassEx(&wcex);
             }
     
            HWND pHwnd = CreateWindowEx (0, windowClass, "Window",
    			 WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 
    			 0, 0, 200, 100, 
    			 (HWND)ptr, NULL, hInstance, NULL);
    J'ai tenté d'utiliser MoveWindow pour retailler la fenêtre parente, mais ça ne fonctionne pas (peut-être que la fenêtre parente n'est pas la boîte de dialogue globale qui peut s'agrandir mais le conteneur à l'intérieur de la boîte ?).

    Est-ce que quelqu'un a une idée ? Pas trop l'habitude de l'API Windows

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    si le hwnd n'est pas le parent , tu peux essayer de faire un GetParent jusqu'à obtenir le handle de la première fenêtre ..
    tu peux aussi vérifier cela avec spy pour voir les différentes fenêtres de ton application.

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Bizarre, ça n'a pas l'air de marcher Quand je fais 1 GetParent, elle n'est pas redimensionnée, et quand j'en fais 2, c'est l'application elle-même qui est redimensionnée... On peut fixer une taille minimale à une fenêtre ?

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    oui , il faut intercepter le message WM_GETMINMAXINFO ,
    et remplir le pointeur sur la structure MINMAXINFO obtenue en castant lparam.

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Pas top Comme je passe par Qt, je n'ai aucune boucle personnelle de messages

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/05/2012, 14h35
  2. Fermer une fenêtre web à partir d'une autre page web.
    Par midotoon dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/02/2009, 03h44
  3. Actualiser une fenêtre parent à partir d'une popup
    Par scorian dans le forum WebDev
    Réponses: 1
    Dernier message: 22/08/2007, 09h50
  4. Controler une fenêtre a partir d'une autre fenêtre
    Par Invité dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 24/08/2006, 21h21
  5. Afficher une Fenêtre MDI à partir d'une DLL
    Par FredericB dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/12/2005, 16h58

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