Здравствуйте, Кодёнок, Вы писали:
Кё>Здравствуйте, Аноним, Вы писали:
CEM>>>Скажите, каким стилем рисуется виндовый таск-бар?
CEM>>>Это окно класса ToolBar, но по цвету оно на тул-бар не похоже
Кё>Думаю, это обычный тулбар, обрабатывающий ownerdraw и рисующий свои кнопки с помощью тем. Ничего удивительного я тут не вижу.
Ага, это так — но вопрос тредстартера заключался в том, какой же стиль используется, чтобы отрисовать.
Отвечаю: кнопки на панели задач — это да, обычный тулбар, но! тема для тулбара своя — "TASKBAND::TOOLBAR"
Для задачи же отрисовки вручную приведу листинг своей функции отрисовки оттемзенной кнопки панели задачи:
//////////////////////////////////////////////////////////////////////
// Name: __draw_taskbar(), __draw_taskbtn()
//////////////////////////////////////////////////////////////////////
#include "uxtheme.h"
#include "tmschema.h"
void __fastcall __draw_taskbar(HWND hWnd, HDC hDC, RECT rect)
{
HTHEME hTheme = OpenThemeData(hWnd, L"TASKBAR");
if (hTheme)
{
DrawThemeBackground(hTheme, hDC, TBP_BACKGROUNDTOP, 0,
&rect, NULL);
CloseThemeData(hTheme);
}
else
{
DrawFrameControl(hDC, &rect, DFC_BUTTON, DFCS_BUTTONPUSH);
}
}
void __fastcall __draw_taskbtn(HWND hWnd, HDC hDC, RECT rect)
{
HTHEME hTheme = OpenThemeData(hWnd, L"TASKBAND::TOOLBAR");
if (hTheme)
{
rect.left += 1;
DrawThemeBackground(hTheme, hDC, TP_BUTTON, TS_PRESSED,
&rect, NULL);
CloseThemeData(hTheme);
}
else
{
DrawFrameControl(hDC, &rect, DFC_BUTTON, DFCS_BUTTONPUSH | DFCS_PUSHED);
}
}