liocifer
Messages postés33Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention 5 mars 2010
-
30 juin 2009 à 20:51
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 2013
-
1 juil. 2009 à 23:05
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.
liocifer
Messages postés33Date d'inscriptionmercredi 15 mars 2006StatutMembreDernière intervention 5 mars 2010 1 juil. 2009 à 18:34
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
Flocreate
Messages postés300Date d'inscriptionlundi 17 juillet 2006StatutMembreDernière intervention27 mai 20123 30 juin 2009 à 22:36
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
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 30 juin 2009 à 23:14
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
jmf0
Messages postés1566Date d'inscriptionmardi 26 décembre 2000StatutMembreDernière intervention 5 avril 20138 1 juil. 2009 à 23:05
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")