Я знаю, что вы можете использовать SetWindowTheme найденный в uxTheme.pas, чтобы отключить/включить тематизации на элементы управления, как это, например:Отключить постановку на определенные элементы управления?
SetWindowTheme(Button1.Handle, nil, nil);
Это работает довольно много элементов управления, однако он не будет работать на некоторые элементы управления, такие как TBitBtn или TSpeedButton. Я думаю, это должно быть потому, что TBitBtn и TSpeedButton не являются элементами управления Windows, а обычными?
Могут быть другие элементы управления, которые также не будут работать, поэтому я надеялся, что кто-то может поделиться решением или альтернативой для достижения этого?
Я хочу, чтобы некоторые элементы управления вообще не имели тематики, например, они будут отображаться как классические, пока остальные элементы управления не будут затронуты.
Спасибо.
Вы еще не прочитали источник изображения этих элементов управления VCL. –
В StdCtrls.pas Я вижу, что TButton имеет выход TWinControl и в Buttons.pas Я считаю, что TBitBtn и TSpeedButton являются пользовательскими классами. Все это выглядит немного сложнее меня! –
'TSpeedButton' - это' TGraphicControl', который в любом случае не имеет ручки. Вы можете переопределить 'Paint'' TspeedButton' и 'CNDrawItem'' TBitBtn' ... Почему XE не предоставил какие-то «UseThemes» для пользовательских элементов управления? dunno ... – kobik