Re[3]: XP Style
От: alexbou Россия  
Дата: 29.03.06 07:48
Оценка: 3 (1)
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, Аноним, Вы писали:


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);
    }
}
---------------------
С уважением, Алексей

Workstation: E6400-2.13GHz@2.56GHz/2048MB/7600GS/Vista Ultimate
Homestation: E6700-2.67GHz@3.22GHz/2048MB/8800GTX/Vista Ultimate
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.