Oppure

Loading
16/06/11 11:39
fusebyte
ho seguito questo link
nuke.vbcorner.net/Progetti/VB60/Progettivari/tabid/79/language/it-IT/…
trovato in un altro thread,sempre qui in sezione.
ho tentato di adattare il codice per la mia applicazione.

ho caricato il modulo.bas
creato un form di test
aggiunto un tasto command
incollato il codice, filtrando le linee di comando che ritenevo fossero adatte e
scartando quello in piu'.
il PNG da caricare dentro il tasto command1 è tasc.png

Option Explicit

Private Declare Function GetSysColor Lib "user32" (ByVal nIndex As Long) As Long

Public Sub LoadPNG(ByVal sFilePNG As String)
    Dim lngInitGDIPlus As Long
    Dim C As Long
    Dim sFile As String
    
    sFile = APP.Path & "\tasc.png" '& sFilePNG
    C = Me.BackColor
       
    If C < 0 Then C = GetSysColor(C - &H80000000)
       
    lngInitGDIPlus = InitGDIPlus
       
   
    Picture1.Picture = LoadPictureGDIPlus(sFile, , , C)
    
    With Command1
        .Width = Picture1.Width
        .Height = Picture1.Height + 300
        .Picture = LoadPictureGDIPlus(sFile, , , C)
    End With
    
    
    FreeGDIPlus lngInitGDIPlus

    UpdateSetLayout
    
End Sub



Non ho capito bene il fatto del picture1, cmq non carica il PNG ed immagino
perche' ho sbagliato sicuramente qualcosa.
Qualcuno puo' farmi vedere l'errore?
Grazie

aaa
16/06/11 12:33
gibra
Sono l'autore del progetto. :)
A me funziona benissimo.

Ti sei ricordato di impostare la proprietà Style del CommandButton su Graphical?




aaa
16/06/11 16:08
fusebyte
Si certo, quando crei il tasto command è su standard di default e se vuoi
"decorare" il tasto bisogna andare su Graphical.

Ora,nel tuo progetto fai un esempio per 4 PNG su 4 tipi di oggetti
Tasto command
picture
image
e un altro ( non ricordo al momento)

L'errore devo averlo fatto estrapolando il codice solo per un tasto command, che poi varrebbe anche per gli altri oggetti con le dovute modifiche.

Saresti cosi' gentile da controllarmi il codice,sono sicuro che cosi' come l'homesso ci sono errori che per non conoscenza non riesco a vedere.

Ti ringrazio
aaa
17/06/11 6:38
gibra
La routine LoadPNG è più complessa del normale perchè vuole dimostra diverse modalità.
Ti posto una routine LoadPNG() ridotta all'osso, cioè serve esclusivamente per caricare una certa immagine PNG in un determinato controllo.
Basta passare il controllo ed il path del file PNG

Public Sub LoadPNG(ByRef pControl As Control, ByVal sFilePNG As String)
    Dim lngInitGDIPlus As Long
    Dim C As Long
    
    C = Me.BackColor
    If C < 0 Then C = GetSysColor(C - &H80000000)
       
    lngInitGDIPlus = InitGDIPlus
    pControl.Picture = LoadPictureGDIPlus(sFilePNG, , , C)
    FreeGDIPlus lngInitGDIPlus
End Sub


E la si usa così:
    LoadPNG Command1, App.Path & "\immagine.png"


:)
aaa
17/06/11 9:58
fusebyte
Grande!!! Funziona :-)
Questa è davvero un' ottima cosa.
Poter caricare dei PNG puo' migliorare molto la grafica...a parer mio.

Ho provato anche con altri oggetti,
la routine che mi hai passato funziona su tutto

Private Sub Form_Load()
LoadPNG Command1, App.Path & "\blender.png"
LoadPNG Image1, App.Path & "\antivirus.png"
LoadPNG Picture1, App.Path & ".png"
End Sub


Grazie^3,Ciao
aaa
18/06/11 7:23
gibra
Postato originariamente da fusebyte:

Grande!!! Funziona :-)
Grazie^3,Ciao


Prego. :)
aaa