Может кто знает как программно получить RGB значения цветов элементов управления Corel?
На данный момент я знаю как получить цвета CommandBar, заголовка окна, рабочей области и TreeView:
Не могу найти цвет кнопок. Ну точнее я понял, что все цвета хранит объект WindowSchemeManager (указатель можно получить через функцию WindowPainter::WindowSchemeManager::Instance библиотеки WindowPainter.dll), но внутренняя структура объекта зависит от версии компилятора, которым собран корел, так что этот вариант отпадает.
На данный момент я знаю как получить цвета CommandBar, заголовка окна, рабочей области и TreeView:
Код:
{$APPTYPE CONSOLE}
uses
Windows,ActiveX,VGCore_TLB,SysUtils;
var
CorelCLSID: TGUID;
CorelApp: IVGApplication;
CorelCUIApp: ICUIApplication;
CustomizationDS: ICUIDataSourceProxy;
begin
CoInitialize(0);
CLSIDFromProgID('CorelDRAW.Application.20',CorelCLSID);
CoCreateInstance(CorelCLSID,nil,CLSCTX_LOCAL_SERVER,IVGApplication,CorelApp);
CorelApp.QueryInterface(IID_ICUIApplication,CorelCUIApp);
CustomizationDS:=CorelCUIApp.DataContext.GetDataSource('CustomizationDS');
writeln('Panel Color','0x':9,IntToHex(SendMessageW(GetParent(CorelApp.ActiveWindow.Handle),$B451,$136,0),8)); //принимает параметры в диапазоне 0x132 - 0x138, если ошибка, то альфа-канал будет равен 0
writeln('Border color','0x':8,IntToHex(CustomizationDS.GetProperty('WindowBorderColor'),8));
writeln('Workspace color','0x':5,IntToHex(CustomizationDS.GetProperty('PageMatColor'),8)); //есть ещё ImageMatColor - не знаю что это
readln;
end.
Не могу найти цвет кнопок. Ну точнее я понял, что все цвета хранит объект WindowSchemeManager (указатель можно получить через функцию WindowPainter::WindowSchemeManager::Instance библиотеки WindowPainter.dll), но внутренняя структура объекта зависит от версии компилятора, которым собран корел, так что этот вариант отпадает.