MDI Picture

Résolu
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 5 juil. 2006 à 08:36
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 - 28 avril 2008 à 09:07
Bonjour à tous

J'aimerais mettre une image de fond sur le form principale de ma MDI

qui "FIT TO SCREEN" selon la taille de l'écran.

Sauf que Me.Autoredraw, Me.PaintPicture ne marche pas sur une MDI

et que je ne veux pas mettre de pictureBox sur la form car cela décale tout!

Si quelqu'un a une solution, autre que celle de charger une picture de la taille de l'écran également.

Je sais que c possible, mais je ne vois pas comment faire...

Merci pour votre aide.

TBBUIM

5 réponses

tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
12 juil. 2006 à 15:59
3
tbbuim1 Messages postés 940 Date d'inscription jeudi 20 février 2003 Statut Membre Dernière intervention 3 février 2011 9
28 avril 2008 à 09:07
Source venant d'ici
' Make the image fit the MDI form.
Private Sub MDIForm_Resize()
Dim client_rect As RECT
Dim client_hwnd As Long

picStretched.Move 0, 0, _
ScaleWidth, ScaleHeight

' Copy the original picture into picStretched.
picStretched.PaintPicture _
picOriginal.Picture, _
0, 0, _
picStretched.ScaleWidth, _
picStretched.ScaleHeight, _
0, 0, _
picOriginal.ScaleWidth, _
picOriginal.ScaleHeight

' Set the MDI form's picture.
Picture = picStretched.Image

' Invalidate the picture.
client_hwnd = FindWindowEx(Me.hwnd, 0, "MDIClient", _
vbNullChar)
GetClientRect client_hwnd, client_rect
InvalidateRect client_hwnd, client_rect, 1
End Sub








TB
BU
IM
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
5 juil. 2006 à 09:40
Il faut SubClasser ta fenetre

Renfield
Admin CodeS-SourceS- MVP Visual Basic
0
Any_Problem_Have_Solution Messages postés 4 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 12 janvier 2009
27 avril 2008 à 16:35
On peut faire aussi comme ceci :

Mettre 2 pictureBox sur la MDIForm : PictureOriginal et PictureStrech
(mettre le PictureOriginal en visible = false)

Mettre aussi un timer : TimerResize
(mettre l'interval du timer a 10 par exemple)

Le but de ce timer va être d'attendre la fin du resize de la form car si on clique sur le bouton agrandir de la feuille sans mettre une toute petite temporisation alors ca va merder !!!

Voici le code :

Private Sub MDIForm_Resize()

    TimerResize.Enabled = True

End Sub

Private Sub TimerResize_Timer()

    TimerResize = False
    PictureStrech.Move 0, 0, MDIForm1.Width, MDIForm1.Height - 500
    PictureStrech.Picture = PictureOriginal.Picture
    PictureStrech.PaintPicture PictureStrech.Picture, 0, 0, PictureStrech.ScaleWidth, PictureStrech.ScaleHeight

End Sub

Voila  @+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Any_Problem_Have_Solution Messages postés 4 Date d'inscription samedi 14 avril 2007 Statut Membre Dernière intervention 12 janvier 2009
27 avril 2008 à 17:08
Oups a oui désolé !
Effectivement pour que la picture soit en MDIForm1.picture
alors oui la meilleure solution et bien celle-ci ;-)
http://www.vb-helper.com/howto_mdi_background_picture.html
Sinon on ne voit pas les childs !!!

Sorry

@+
0
Rejoignez-nous