Ciao , come da titolo vorrei sapere se possibile strecciare la picture (sfondo) di un form MDI , in modo che qualsiasi immagine si adatti allo sfondo.
![]()
Ciao , come da titolo vorrei sapere se possibile strecciare la picture (sfondo) di un form MDI , in modo che qualsiasi immagine si adatti allo sfondo.
![]()
in effetti è un po' "laborioso"... ma sono riusito a trovarlo, il metodo
codice:Private Sub MDIForm_Resize() Static tmpPic As PictureBox Static bkpImg As StdPicture Static Exists As Boolean On Error Resume Next If Not Exists Then Set tmpPic = Me.Controls.Add("VB.PictureBox", "tmp") Set bkpImg = Me.Picture Exists = True End If With tmpPic .Cls .BorderStyle = 0 .AutoRedraw = True .Move 0, 0, Me.ScaleWidth, Me.ScaleHeight .PaintPicture bkpImg, 0, 0, Me.ScaleWidth, Me.ScaleHeight Me.Picture = .Image End With End SubBoolean
grazie Boolean , volevo chiederti che tipo di controllo devo inserire nel Mdiform per far funzionare il tuo codice?
Una picturebox ?
![]()
ah, già... scusami, ho dimenticato di dirtelo...
non devi inserire nulla... solo caricare la picture attraverso la proprietà Picture dell'MDI, o anche da codice nel suo evento Load... come preferisci...
Boolean
scusa Boolean, ma se voglio caricare l'immagine esternamente con loadpicture come devo fare
, che parte di codice devo modificare?
questa ?
codice:Me.Picture = .Image![]()
no, non quella... quella serve per riassegnare l'immagine ridimensionata alla Picture di sfondo dell'MDI, dovresti caricarla come ti dicevo prima, nell'evento Load dell'MDI:Originariamente inviato da yyzyyz
se voglio caricare l'immagine esternamente con loadpicture come devo fare
, che parte di codice devo modificare?
questa ?
codice:Me.Picture = .Image
codice:Private Sub MDIForm_Load() Me.Picture = LoadPicture("C:\TuoPercorso\TuaImmagine.jpg") End SubBoolean
Si ma facendo cosi' l'immagine non si adatta piu' allo sfondo dell'mdi![]()
codice:On Error Resume Next If Not Exists Then Set tmpPic = Me.Controls.Add("VB.PictureBox", "tmp") Set bkpImg = Me.Picture Exists = True End If With tmpPic .Cls .BorderStyle = 0 .AutoRedraw = True .Move 0, 0, Me.ScaleWidth, Me.ScaleHeight .PaintPicture bkpImg, 0, 0, Me.ScaleWidth, Me.ScaleHeight Me.Picture = LoadPicture(App.Path & "\sfondi\sfondo" & id_imagine_sfondo & ".jpg") End With
forse non mi sono spiegato...
devi utilizzare un'altro evento che non sia l'evento RESIZE dell'MDIForm!
puoi utilizzare l'evento Load, o magari il click di un pulsante (richiamando poi l'evento resize), ma non puoi utilizzare l'evento Resize stesso, ameno di non includerlo nella condizione iniziale, ovvero:
ma se lo includi lì quella riga di codice verrà eseguita solo una volta, quindi le future variazioni dell'immagine di sfondo dovranno essere affidate comunque ad un evento che non sia il Resize.codice:If Not Exists Then Set tmpPic = Me.Controls.Add("VB.PictureBox", "tmp") Me.Picture = Me.Picture = LoadPicture(App.Path & "\sfondi\sfondo" & id_imagine_sfondo & ".jpg") Set bkpImg = Me.Picture Exists = True End If
Boolean