Bonjour. Si j'ai une picture box affichée et que j'appele une fenêtre (je suis dans une application mdi) cette dernière s'affiche sous la picture box.
Serait-il possible qu'elle s'affiche SUR la picture box ?
Bonjour. Si j'ai une picture box affichée et que j'appele une fenêtre (je suis dans une application mdi) cette dernière s'affiche sous la picture box.
Serait-il possible qu'elle s'affiche SUR la picture box ?
Salut
Essaie
Si ça marche pas, tu dis
Code : Sélectionner tout - Visualiser dans une fenêtre à part MaFenetre.ZOrder
Cela ne fonctionne pas. J'ai ceci
La picturebox s'affiche bien avec son contenu, elle est à la bonne taille mais impossible d'ouvrir une fenêtre par dessus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3pictureMain.Visible = True pictureMain.ZOrder pictureMain.Height = Me.Height
ZOrder sur la fenêtre, pas sur le pictureBox. ZOrder ramène à l'avant le contrôle (ou conteneur) qui est derrière.
J'ai donc remplacé mon picturemain.ZOrder par mdiform1.ZOrder mais il n'y a pas eu de changementmes fenêtres s'ouvrant toujours sous la picture box
Je fais des tests et t'en reparle... demain. Tu dis si c'est trop tard.
Les tests ont étés plus rapides que prévu.
C'est comme je te disais en message privé.
Si tu place ton pictureBox dans une fenêtre sans bordures, tu pourra la gérer comme les autres fenêtres filles. Seulement elle sera affichée dans le menu Fenêtres de ton application.
Voici ce que j'ai fait. J'ai d'abord créé une fenêtre (objet Form) et placé ces différentes valeurs:
Tu y mets l'image de ton choix.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Propriété Valeur Name frmPicture BorderStyle 0 - None Caption Image 'pour le menu Fenetre
J'ai ensuite codé ceci dans frmPicture:
Et ajouté cette ligne dans la procédure de lancement de l'appli:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Private Sub Form_Load() Me.Width = Picture1.Width Me.Height = Picture1.Height End Sub Private Sub Picture1_Resize() frmPicture.Width = Picture1.Width frmPicture.Height = Picture1.Height End Sub
Sans oublier de coder LoadPictureForm
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Private Sub MDIForm_Load() Me.Left = GetSetting(App.Title, "Settings", "MainLeft", 1000) Me.Top = GetSetting(App.Title, "Settings", "MainTop", 1000) Me.Width = GetSetting(App.Title, "Settings", "MainWidth", 6500) Me.Height = GetSetting(App.Title, "Settings", "MainHeight", 6500) LoadPictureForm ' juste avant d'ouvrir un document LoadNewDoc End Sub
Après, lorsque tu ouvres un document, celui-ci sera toujours à l'avant plan.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub LoadPictureForm() Dim frmP As frmPicture Set frmP = New frmPicture frmP.Top = 0 frmP.Left = 0 frmP.Show End Sub
Edit :
Je fais d'autres tests pour empêcher d'ajouter le frmPicture dans le menu fenêtre et le rendre 'inclicable'.
Merci.
J'étais parti sur une autre piste (la picture box est censé contenir une image (je veux donc mettre une image de fond sur mon appli)) mais je vais voir si ceci fontcionne![]()
et MDIForm1.picture = loadpicture ...
ca ne suffit pas ?
L'image se charge bien mais aux dimensions de l'image alors que j'aurais souhaité qu'elle s'ouvre aux dimensions de l'écran.
De plus mon application permet de changer le fond d'écran et il y a des bugs avec ce systeme (au niveau du rafraichissement de l'image)
C'est pour ça que j'avais pensé à l'insérer dans une picture box conteant un controlleur image. En étirant l'image à la taille de la picture box elle meme etirée a la taille de l'écran j'avais une image couvrant toute la surface de mon écran.
Salut
et la propriété AutoRedraw sur ta form principale, si tu la mets à True?
Edit : bon, je vois, pas de AutoRedraw...
Alors, j'ai pas d'idée sur ce coup-là.
sauf que ni la solution de jmf, ni la mienne ne peuvent s'appliquer à une MDIForm, car celle-ci ne connait pas PaintPicture
Alors on efface tout et on recommence (cf le 1er post du sujet ) !!!
Ki non Ki non !
on fiche dans la MDI une pictureBox aux dimensions de la MDI et elle se comporte dès lors comme une Form![]()
Et c'est dans cette pictureBox que l'on met ce que l'on avait prévu de mettre
et bien essaie ensuite d'ouvrir une form fille, je te laisse la surprise![]()
je me suis déjà heuter à ce pb, pas toi, apparement, alors verifie et dis-moi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Private Sub Command1_Click() Load Form2 Form2.Show MDIForm1.Picture1.Visible = False Form2.ZOrder End Sub
Pas bon, si la forme fille n'est pas agrandie !! ou alors tu n'as plus de fond![]()
Partager