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 :

Aire client MDI


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 48
    Par défaut Aire client MDI
    Avec ce code mon client MDI prend tout mon ecran (tout sauf biensur un menu, une toolbar et une barre de status)

    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
    24
    CLIENTCREATESTRUCT ccs;
     
    			// Create MDI Client
     
    			// Find window menu where children will be listed
    			ccs.hWindowMenu  = GetSubMenu(GetMenu(hwnd), 2);
    			ccs.idFirstChild = ID_MDI_FIRSTCHILD;
     
    			g_hMDIClient = CreateWindowEx(
    				WS_EX_CLIENTEDGE, 
    				"mdiclient",
    				NULL,
    				WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL | WS_VISIBLE,
    				CW_USEDEFAULT,
    				CW_USEDEFAULT,
    				CW_USEDEFAULT,
    				CW_USEDEFAULT,
    				hwnd,
    				(HMENU)IDC_MAIN_MDI,
    				GetModuleHandle(NULL),
    				(LPVOID)&ccs);
     
    			if(g_hMDIClient == NULL)
    				MessageBox(hwnd, "Could not create MDI client.", "Error", MB_OK | MB_ICONERROR);
    Comment faire pour qu'elle ne prenne que la moitié en vertical ?

    merci beaucoup

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Par défaut
    Bonjour,

    Je pense que si tu obtient le rectangle de la zone client de la window
    parent avec l'API GetClientRect
    puis en utilisant les coordonnee recue et biensur en les adaptant
    aux dimensions desiree on donne des valeurs
    a la plce des 4 CW_USEDEFAULT

    Salut

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 48
    Par défaut
    tu pourrais me donner un exemple de code car je suis novice en visual.Par contre je connais bien le C++
    Merci beaucoup a toi

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 68
    Par défaut
    Bonjour

    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
    24
    25
    26
    27
    CLIENTCREATESTRUCT ccs; 
     
             // Create MDI Client 
             RECT rect;
             GetClientRect(hWnd,      // handle to window
                                  &Rect   // client coordinates
                                 );
             // Find window menu where children will be listed 
             ccs.hWindowMenu  = GetSubMenu(GetMenu(hwnd), 2); 
             ccs.idFirstChild = ID_MDI_FIRSTCHILD; 
     
             g_hMDIClient = CreateWindowEx( 
                WS_EX_CLIENTEDGE, 
                "mdiclient", 
                NULL, 
                WS_CHILD | WS_CLIPCHILDREN | WS_VSCROLL | WS_HSCROLL | WS_VISIBLE, 
                rect.right/2, 
                rect.top, 
                rect.right, 
                rect.bottom, 
                hwnd, 
                (HMENU)IDC_MAIN_MDI, 
                GetModuleHandle(NULL), 
                (LPVOID)&ccs); 
     
             if(g_hMDIClient == NULL) 
                MessageBox(hwnd, "Could not create MDI client.", "Error", MB_OK | MB_ICONERROR);
    salut

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

Discussions similaires

  1. [WD16] Taille de la zone client d'une mère MDI
    Par Christophe Charron dans le forum WinDev
    Réponses: 3
    Dernier message: 27/01/2015, 10h09
  2. Connecter appli AIR client avec JAVA client
    Par Space23 dans le forum Flex
    Réponses: 1
    Dernier message: 14/04/2011, 15h19
  3. Réponses: 0
    Dernier message: 20/07/2008, 18h14
  4. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57

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