Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.036 c
1-1119530302
webpauk
2005-06-23 16:38
2005.07.18
Потеря цвета


3-1118215288
Dimedrol
2005-06-08 11:21
2005.07.18
MSSQL running time?


1-1120267488
МП
2005-07-02 05:24
2005.07.18
как программно копировать выделенный текст, из другой программы


3-1116395040
kivadim
2005-05-18 09:44
2005.07.18
Программная перекачка из DBF в MSSQL


4-1117101550
Dufe
2005-05-26 13:59
2005.07.18
Масштаб шрифта





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский