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.