Frank Richter wrote:
Most interesting is probably to find out how the standard controls from user32 are themed. Poking a bit around in comctl32 6.0, it seems that it actually just registers the standard classes with RegisterClassW, nothing more. AFAIK you can't register a class when the class name is already used, so it would be interesting to know why comctl32.dll can get away with it.
Maybe it only register as per Process, which makes sense. And it does that before any window is displayed. Actually I know when. (A bug I had) it does it in the InitCommonControlsEx call. Not even in the DLLMain. An app that needs theming needs 3 things. 1. Link to comctl32 2. call InitCommonControlsEx and 3. a manifest. Right? So I guess you have it.
I'm not 100% but I think there is no need for duplicate code. All comctl32 needs to do is chain to the user32 classes, only overriding PAINT messages and some mouse events. So you don't have to reinvent the wheel.
Do you need lots of themed controls WM_PAINT code? Check out codeproject.com GUILIB project. They owner draw all windows controls with themes support.
Free Life Boaz