Newsgroup: it.comp.lang.visual-basic
Titolo: Refresh Picture

Ho un MDIForm che ha uno sfondo.
In una voce del menu ho inserito del codice che, a seconda della scelta 
effettuata dal'utente, cambia l'immagine di sfondo
    MDIForm1.Picture = LoadPicture(App.Path & "\Sfondo_Prova.jpg")
quando lancio il programma da Progettazione... l'immagine cambia...
quando compilo ed uso l'eseguibile invece l'immagine non cambia subito. 
Cambia soltanto quando apro un'altra finestra e la chiudo.
-- 
-----------------------------------
Distinti saluti,
Salvatore Paci
www.salvatorepaci.it
es...Cogito, ergo sum


Ciao.
Tempo fa mi sono ritrovato anch'io con lo stesso problema e dato che
sembra essere un problema proprio del form MDI, ho risolto mettendo
una Picture come sfondo del form MDI. Per la picture il loadpicture è
immediato e funziona sempre. E' una pezza al problema, sarà pure la
scoperta dell'acqua calda, ma così funziona.
Ciao a presto.

 ha scritto nel messaggio 
news:1171618642.5...@m58g2000cwm.googlegroups.com...
Ciao.
Tempo fa mi sono ritrovato anch'io con lo stesso problema e dato che
sembra essere un problema proprio del form MDI, ho risolto mettendo
una Picture come sfondo del form MDI. Per la picture il loadpicture è
immediato e funziona sempre. E' una pezza al problema, sarà pure la
scoperta dell'acqua calda, ma così funziona.
Ciao a presto.
----------------------------------
Infatti io faccio così
MDIForm1.Picture = LoadPicture(App.Path & "\Sfondo_Prova.jpg")
ma non funziona immediatamente

 ma non funziona immediatamente
mider intendeva una PictureBox, comunque, hai provato con un 
MDIForm1.Refresh?
Ciao 

 Ciao
---------------
Si ma....
"errore di compilazione. Impossibile trovare il metodo o il membro dei dati
Ho usato come consigliato da Mider e da te la PictureBox e funziona.
Grazie 1.000 

 ha scritto nel messaggio 
news:1171618642.5...@m58g2000cwm.googlegroups.com...
Ciao.
Tempo fa mi sono ritrovato anch'io con lo stesso problema e dato che
sembra essere un problema proprio del form MDI, ho risolto mettendo
una Picture come sfondo del form MDI. Per la picture il loadpicture è
immediato e funziona sempre. E' una pezza al problema, sarà pure la
scoperta dell'acqua calda, ma così funziona.
Ciao a presto.
------------
Perdonami ma ho capito soltanto adesso.
Funziona, grazie!


Secondo me con la picturebox potresti avere dei problemi al momento di aprire
dei form child, visto che occupa la "client area" ad essi dedicata.
Se usi la proprietà Picture del form MDI, è sufficiente che dopo averla
impostata con LoadPicture, chiami questa funzione:
Private Sub RefreshClientArea()
Dim hWndClient As Long
Dim lpRect As RECT
    hWndClient = FindWindowEx(Me.hwnd, 0, "MDIClient", vbNullChar)
    GetClientRect hWndClient, lpRect
    InvalidateRect hWndClient, lpRect, 1
End Sub
Non dimenticarti di aggiungere le dichiarazioni necessarie:
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" _
    (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal
lpsz2 As String) As Long
Private Declare Function GetClientRect Lib "user32.dll" _
    (ByVal hwnd As Long, ByRef lpRect As RECT) As Long
Private Declare Function InvalidateRect Lib "user32.dll" _
    (ByVal hwnd As Long, ByRef lpRect As RECT, ByVal bErase As Long) As Long
Bye
Raf
-----------------------------------------------------
Funk: cooler than the other side of the pillow.
--------------------------------------------------------------------------------
La mia Cartella di Posta in Arrivo è protetta con SPAMfighter
585 messaggi contenenti spam sono stati bloccati con successo.
Scarica gratuitamente SPAMfighter!