Отрисовка контролов в XP Style

Создание, использование компонентов ActiveX
Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Отрисовка контролов в XP Style

Сообщение Alexanbar » 10.01.2005 (Пн) 11:40

Если кому не жалко, скиньте модуль для прорисовки элементов
SSTab и Listview (версии 6)

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 13.01.2005 (Чт) 21:08

Закончил в первом приближении отрисовку SSTab. Нашёл пример с отрисовкой графической кнопки. При запуске формы диалога и её последующем закрытии кнопка отрисовывается наполовину как стандартная (вне того места, где была форма диалога), наполовину-в XP стиле. Для отрисовки перехватывается сообщение WM_Paint.
Но, похоже, прорисовка происходит и при поступлении других сообщений, вот только каких?
[/img]
У вас нет доступа для просмотра вложений в этом сообщении.

Alexanbar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1727
Зарегистрирован: 13.04.2004 (Вт) 23:04
Откуда: Волгоградская обл.

Сообщение Alexanbar » 17.01.2005 (Пн) 0:47

С отрисовкой кнопки вроде глюк пропал, заодно и подсветка появилась. Всё благодаря ф-и InvalidateRect.

Начал отрисовку Frame, так как стандартная меня не устраивает.

Споткнулся на том, что он не хочет быть прозрачным.
Перехватываю событие WM_Paint. Далее делаю так:

Dim tcr As RECT, tCRText As RECT
Dim tPS As PAINTSTRUCT
......

GetClientRect hwnd, tcr
hTheme = OpenThemeData(hwnd, StrPtr("Button"))
hdc = BeginPaint(hwnd, tPS)

'закрашивается внутрення область одним цветом. Если не делать- собирается мусор с экрана

hBR = CreateSolidBrush(TranslateColor(Frame.Container.BackColor))
FillRect hdc, tcr, hBR
DeleteObject hBR

'собственно, рисование
DrawThemeBackground hTheme, hdc, 4, 1, tcr, tcr

... 'рисую текст

......

EndPaint hwnd, tPS

' Close the theme
CloseThemeData hTheme


Вернуться в Компоненты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList