On Tue, 24 Feb 2004 22:04:13 -0500, Kevin Koltzau wrote:
I'm starting to work on theming some widgets, and I've come up with a few methods of doing this:
- Add theming code to every widget itself, static link to uxtheme.dll
- Add theming code to every widget itself, using LoadLibrary/GetProcAddress
- Subclass widgets when uxtheme.dll is loaded and override default painting
4) Theme all widgets with a hard link to uxtheme but have a "Win98 look" theme which replicates the current drawing?
Windows takes a totally different approach, using a different version of common controls that implement theming, under windows in order to enable theming you first need a manifest to load the proper version of comctrl32 then you also must call InitCommonControls which registers the standard controls (BUTTON,EDIT,etc)
Well, to be strictly like Windows then I guess we could actually build comctl32 twice with #ifdefs etc for the theming code.
Going with that, I think #3 might be the best option, and extend InitCommonControls to subclass the standard controls if theming is enabled
That sounds rather complicated and like it might introduce further bugs when apps don't expect controls to be already subclassed...
thanks -mike