So che è possibile utilizzare SetWindowTheme trovato in uxTheme.pas per abilitare/disabilitare la tematizzazione sui controlli, in questo modo, per esempio:Disabilitare il tema di controlli specifici?
SetWindowTheme(Button1.Handle, nil, nil);
Questo funziona su un bel po 'dei controlli, tuttavia non funzionerà su alcuni controlli come TBitBtn o TSpeedButton. Penso che questo sia dovuto al fatto che TBitBtn e TSpeedButton non sono controlli di Windows, ma quelli personalizzati?
Potrebbero esserci anche altri controlli che non funzionano, quindi speravo che qualcuno potesse condividere una soluzione o un'alternativa per raggiungere questo obiettivo?
Desidero che alcuni dei controlli non contengano alcun argomento, ad esempio mostreranno un tema classico mentre il resto dei controlli non sarà interessato.
Grazie.
Hai già letto la fonte per il disegno di questi controlli VCL. –
In StdCtrls.pas vedo che TButton è di discendenza TWinControl, e in Buttons.pas credo che TBitBtn e TSpeedButton siano classi personalizzate. Anche a me sembra tutto un po 'complicato! –
'TSpeedButton' è un' TGraphicControl' che non ha comunque un handle. Potresti sovrascrivere 'Paint' di' TspeedButton' e 'CNDrawItem' di' TBitBtn' ... Perché XE non ha fornito una sorta di 'UseThemes' per i controlli personalizzati? non so ... – kobik