Conteneur, contenu

[Résolu]
Signaler
Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010
-
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
-
Bonsoir,

Débutant sur vb6, je cherche à créer une application du style :

une form1 avec deux parties : gauche et droite

une partie gauche avec des boutons de commandes permettant de faire apparaitre

(command1) une nouvelle form2 dans la partie de droite
(command2) une nouvelle form3 dans la partie de droite
(command3) une nouvelle form4 dans la partie de droite
etc....

tout ceci en restant dans la fenêtre principale (form1) de façon à ce que quand on réduit la fenêtre principale la form2,form3 ou form4 agisse de la même manière que la fenêtre principale.Que le tout fasse partie d'un même bloc.

Merci de m'indiquer la procédure à suivre.Bonne soirée.

Cordialement.

6 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

voir les projets en mode MDI

une fenêtre "mère", les autres "filles"

tu peux régler cette propriété directement au niveau de chaque form
++

<hr size="2" width="100%" />
Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010

Bonsoir,

Pour ceux à qui ça intéresse voici la solution proposée par quelqu'un du site Developpez.com et qui fonctionne à merveille

En ce qui concerne la MDI, le code suivant (utilisation de fonctions de l'API de Windows) inhibe certaines choses.
Supprime ce que tu ne veux pas inhiber.
Code :

Option Explicit

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long


Private Sub MDIForm_Activate()
Dim sysmen As Long
sysmen = GetSystemMenu(Me.hwnd, 0)
DeleteMenu sysmen, &HF000&, &H0& ' empêche son redimensionnement
DeleteMenu sysmen, &HF030&, &H0& ' si tu ne veux pas qu'on puisse l'agrandir
DeleteMenu sysmen, &HF020&, &H0& 'si tu ne veux pas qu'on puisse la réduire
DeleteMenu sysmen, &HF010&, &H0& ' si tu ne veux pas qu'on puisse la déplacer
End Sub
Messages postés
300
Date d'inscription
lundi 17 juillet 2006
Statut
Membre
Dernière intervention
27 mai 2012
3
Bonjour,
Si tu n'as comme contrainte que le fait que lorsque tu abaisse le form1, alors les autre en font de même, tu peux faire la chose suivante :

dans toutes les forms :

private p_windowstate as integer

Private Sub Form_Resize()
    If (Me.Windowstate <> p_Windowstate) then
         p_windowstate = Me.Windowstate

         'mettre toutes les autres fenetres dans le meme etat
         Form2.Windowstate = Me.Windowstate ...
    End If
End Sub

cependant, tu as parlé de zone , droite gauche, ce qui implique que tu souhaiterait que les fenetres soient positionnéent préciséments. c'est faisable, c'est dans le même style que le code ci dessus mais avec un hook en plus (genre un Timer qui se charge de vérifier la position des fenetres et de les remettre a la bonne place tout seul)

je te signal que le fait d'avoir plusieurs fenetres va surcharger ta barre des taches, est-ce ce que tu souhaite ?
sinon, je te conseil l'utilisation du composant "Microsoft Tabled Dialog Control 6.0" a ajouter dans Projet/Composants (TABCTL32.OCX)

voila,
j'espère avoir éclairé ta lanterne, sinon, j'essayerai de faire mieux
Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010

Pour Pcpt, j'ai testé la mdi.Je voudrais maintenant bloquer le redimensionnement de la mdi et ajuster les forms à cette mdi..Est-ce possible ?

Sinon Flocreate, je testerais ta solution demain, je te tiens au courant.Merci.

Merci d'avance pour vos réponses.

cdt.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

bloquer le redim?
mère ou fille?....
dans les 2 cas tu bloques à quoi, une taille définie? (tu connais la résolution et la taille de l'écran de tous les clients potentiels?!....)

plein écran? dans ce 2e cas tu peux supprimer le bouton "restore") dans les propriétés de la form, et mettre en "maximized" par défaut, aussi dans les propriétés

<hr size="2" width="100%" />
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Merci, mais ...
1) tu aurais pu trouver ce code en utilisant le moteur de recherche de ce forum
2) celui qui t'a répondu sur "l'autre forum" est peut-être le même que celui qui te réponds présentement ...

Tu aimes la puissance des fonctions de l'Api de Windows et demandes comment s'en servir intelligemment ? ===>> je suis d'accord, mais si tu en veux plus, ce sera "ICI" (raison pour laquelle tu n'as pas eu de réponse sur ce point  "là-bas")