Treeview/Listview SetWindowTheme(hwndList, L"Explorer", NULL); - VB
Формулировка задачи:
Собственно, как это сделать на других языках я нашел, например:
http://www.codeproject.com/KB/vista/themedvistacontrols.aspx?msg=2780811
Перевел, как смог, на VB6 (готовых примеров не накопал)
Пока не фурычит.
Предполагаю ошибки в
Private Declare Function SetWindowTheme
а также в константах
Private Const TVS_EX_FADEINOUTEXPANDOS = &H40 '0x0040
Private Const TVS_EX_AUTOHSCROLL = &H20 '0x0020
Манифест естественно внедрен и испытания на Висте.
Идеи будут?
Решение задачи: «Treeview/Listview SetWindowTheme(hwndList, L"Explorer", NULL);»
textual
Листинг программы
<font color="blue">Private</font> <font color="blue">Sub</font> Form_Load()
OldListWindowProc = SetWindowLong(ListView1.hwnd, GWL_WNDPROC, _
<font color="blue">AddressOf</font> NewListWindowProc)
<font color="blue">Public</font> <font color="blue">Function</font> NewListWindowProc(<font color="blue">ByVal</font> hwnd <font color="blue">As</font> <font color="blue">Long</font>, <font color="blue">ByVal</font> Msg <font color="blue">As</font> <font color="blue">Long</font>, <font color="blue">ByVal</font> wParam <font color="blue">As</font> <font color="blue">Long</font>, <font color="blue">ByVal</font> lParam <font color="blue">As</font> <font color="blue">Long</font>) <font color="blue">As</font> <font color="blue">Long</font>
<font color="00AA00">'для событий listview</font>
<font color="blue">If</font> (Msg = &HF) <font color="blue">Then</font> <font color="00AA00">'WM_PAINT</font>
<font color="00AA00">'Debug.Print <font color="teal">"WM_PAINT"</font></font>
Form1.RedrawHeaders
<font color="blue">End</font> <font color="blue">If</font>
NewListWindowProc = CallWindowProc( _
OldListWindowProc, hwnd, Msg, wParam, _
lParam)
<font color="blue">End</font> <font color="blue">Function</font>