По материалам MSDN Оригинал статьи расположен на http://support.microsoft.com/support/kb/articles/Q178/4/91.ASP
Изменить цвет фона ActiveX TreeView
Информация применима для: Microsoft Visual Basic Learning Edition for Windows, versions 5.0 , 6.0 Microsoft Visual Basic Professional Edition for Windows, versions 5.0 , 6.0 Microsoft Visual Basic Enterprise Edition for Windows, versions 5.0 , 6.0
Данная пример показывает, каким образом можно изменить цвет фона на элементе управления TreeView в созданном вами пользовательском интерфейсе
Дополнительная информация Для изменения цвета фона TreeView требуется библиотека comctl32.dll, версии 4.70 или позднее. Этот файл доступен при установленном Internet Explorer версии 4.0 и выше. При изменении цвета фона в TreeView будут вызваны следующие функции Windows API:
SendMessage - передача определенных сообщений в окно или из окна GetWindowLong - извлекает информация об окне SetWindowLong - изменяет атрибут определенного окна
Следующая часть показывает, как создать пример демострирующий использование функции изменения цвета фона, при условии если у вас установлена корректная версия comctl32.dll
NOTE : Microsoft рекомендует воздерживаться от применения этого метода смены цвета фона при использовании mscomctl.ocx версии TreeView control. Все что при этом произойдет - ваш риск
1 Создайте форму. Откройте в режиме дизайна.
2 Установить ссылку на Microsoft Common Controls.
3 Из меню Вставка (Insert) выберите и поместите на форму элемент Microsoft TreeView Control c именем TreeView1
4 А также поместите кнопку с именем CommandButton1
5 Следующий код скопируйте в окно модуля формы:
Private Declare Function SendMessage Lib "User32" _ Alias "SendMessageA" (ByVal hWnd As Long, _ ByVal wMsg As Long, ByVal wParam As Long, _ 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