Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653

    MDIform - stretch picture

    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.

  2. #2
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    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 Sub
    Boolean

  3. #3
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    grazie Boolean , volevo chiederti che tipo di controllo devo inserire nel Mdiform per far funzionare il tuo codice?
    Una picturebox ?


  4. #4
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    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

  5. #5
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    grazie Boolean è perfetto

  6. #6
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    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

  7. #7
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    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
    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:

    codice:
    Private Sub MDIForm_Load()
    Me.Picture = LoadPicture("C:\TuoPercorso\TuaImmagine.jpg")
    End Sub
    Boolean

  8. #8
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    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

  9. #9
    Utente di HTML.it L'avatar di Boolean
    Registrato dal
    Oct 2005
    Messaggi
    758
    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:

    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
    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.

    Boolean

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.