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