Classic Confusion


Click here to change the theme.

This short article is not as clearly written as I intend to make it eventually.

In my opinion, Microsoft appears to intentionally confuse us. Appearances can be deceiving, but one thing that can be very confusing is the term class. Windows had classes long before Microsoft C had classes; that is, long before the Microsoft C compiler supported the C++ language. In particular, the second parameter of CWnd::CreateEx is not a C++ class name; it is something else that has nothing to do with C++ classes. Confusing? Yes!

See Window Classes in the Platform SDK documentation for a description of Windows classes. One page of that documentation in particular that is interesting is About Window Classes; under "System Classes" is listed standard class names used for things like dialog boxes and common controls.

The GetClassName function retrieves the window class name of a window. You can use Spy++ to see the Windows class (such as "#32770") of a window.