Форум: "WinAPI";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
ВнизПанели групп как в Windows Explorer через MS Visual Styles API ? Найти похожие ветки
← →
Rius (2005-05-20 16:54) [0]В общем все получается красиво разрисовать через ThemeApi, но есть один глюк с панелями групп (в Проводнике Windows XP/2003 слева, типа там "System Tasks", "Other Places", "Details".
Данные части имеют идентификаторы:EXPLORERBAR
EBP_HEADERBACKGROUND
EBP_NORMALGROUPBACKGROUND
EBP_NORMALGROUPCOLLAPSE
EBP_NORMALGROUPEXPAND
EBP_NORMALGROUPHEAD
EBP_SPECIALGROUPBACKGROUND
EBP_SPECIALGROUPCOLLAPSE
EBP_SPECIALGROUPEXPAND
EBP_SPECIALGROUPHEAD
При выводе через DrawThemeBackground рисуется соответствующее изображение, находящееся в файле стиля *.msstyles (например Longhorn Aero.msstyles)
Сам же Windows Explorer берет их из библиотеки shellstyle.dll.
Вопрос: как мне рисовать нужные изображения как WinExplorer через ThemeApi ? Т.е. не доставать их вручную как ресурсы из DLL, а чтобы это делало API.
работаю в C++Builder 6, но никакой разницы от Delphi 7 не должно быть.
← →
Ученик (2005-05-21 19:33) [1]>Rius (20.05.05 16:54)
Похоже на Windows Explorer, возможно, что-то не так
uses
Themes;
{$R *.dfm}
procedure TForm1.PaintBox1Paint(Sender: TObject);
var
Details: TThemedElementDetails;
Rect: TRect;
begin
with PaintBox1 do begin
Rect := ClientRect;
Rect.Bottom := Rect.Top + 30;
Details := ThemeServices.GetElementDetails(tebNormalGroupHead);
ThemeServices.DrawElement(Canvas.Handle, Details, Rect);
Details := ThemeServices.GetElementDetails(tebNormalGroupBackground);
Rect := ClientRect;
Rect.Top := Rect.Top + 30;
ThemeServices.DrawElement(Canvas.Handle, Details, Rect)
end
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.07.18;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c