Newsgroup: it.comp.lang.visual-basic
Titolo: TreeView e colore di sfondo. API?

Ciao, come si fa ad impostare un colore di sfondo sul controllo
treeview? Non ci sono proprieta' che lo permettono, forse c'e' bisogno
di sfruttare qualche API di windows?
Io ho provato cosi' ma forse ho sbagliato qualcosa perche' non cambia
niente.
Private Declare Function SetClassLong Lib "user32" Alias
"SetClassLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal
INewVal As Long) As Long
Private Declare Function GetStockObject Lib "gdi32" (ByVal fnObject As
Long) As Long
risultato = SetClassLong(TreeView1.hWnd, -10, GetStockObject(4))
4 sta per BLACK_BRUSH
-10 per GCL_HBRBACKGROUND.

Ecco il codice per impostare ibackground di un treeview
Ciao,
Corrado
ATTENZIONE!
Questo codice funziona solo se la comctl32.dll é quella distribuita con IE4.
Private Const GWL_STYLE As Long = -16&
Private Const TVS_HASLINES As Long = 2
Private Const TV_FIRST As Long = &H1100
Private Const TVM_SETBKCOLOR As Long = (TV_FIRST + 29)
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam
As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA"
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA"
(ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Sub Command1_Click()
Dim hwndTV As Long, style As Long
'--------------------------------------------
hwndTV = TreeView1.hwnd
SendMessageLong hwndTV, TVM_SETBKCOLOR, 0, RGB(255, 0, 0)
style = GetWindowLong(hwnd, GWL_STYLE)
   If style And TVS_HASLINES Then
      Call SetWindowLong(hwndTV, GWL_STYLE, style Xor TVS_HASLINES)
      Call SetWindowLong(hwndTV, GWL_STYLE, style)
    End If
End Sub
Emanuel


Grazie!!
Per chi non ha IE4 non ci sono altre api?
Poi mi piacerebbe poter inserire anche delle gif trasparenti per il
treeview e ho notato che nella imagelist le posso inserire ma quando
vengono visualizzate nel controllo treeview in esecuzione perdono
l'effetto del trasparente che viene sostituito con il bianco, non ci
si puo' fare niente?


La microsoft ha da tempo rilasciato un file di aggiornamento di comctl32.dll
(ver 4.72) con il quale non e' piu' necessario avere internet explorer 4 sul
computer.
L'aggiornamento si chiama:
40Comupd.exe (500Kb)
ed e' possibile scaricarlo dal sito microsoft.
Saluti
Paolo Cioeta

Sorry, l'unico suggerimento che posso darti é quello di adattare i backcolor
delle gif a quello del treeview, non é il massimo lo so...
Ciao,
Corrado

si puo' fare niente?
Annullo la richiesta del trasparente, ho scoperto come si puo' fare.
Se interessa a qualcun altro il metodo e' questo:
1. Inserisci un immagine nella imagelist, anche bmp, con un colore
prescelto da te che deve essere visualizzato come trasparente.
2. In Proprietą, nella scheda "Generale" seleziona "UseMaskColor"
3. Sulla scheda "Colore" cambi "MaskColor" con il tuo colore prescelto
come trasfarente nell'immagine/i inserite.
Finish


wrote:

Per caso l'aggiornamento di questo file lo installa anche office 97?

Per caso l'aggiornamento di questo file lo installa anche office 97?
NO
Ciao
Paolo Cioeta