On Friday, 11 May 2012 at 14:17:04 UTC, Steven Schveighoffer
wrote:
Yeah, but given that the subclass is calling the base
constructor, and the base constructor does not return until
WM_CREATE is received, can't the subclass constructor pretend
it received the message?
-Steve
"pretend"?
No, because the window handle doesn't even EXIST until WM_CREATE
passes it to the window instance! (Sorry I guess I didn't mention
that, but it was kind of implicit in the fact that messages are
passed *before* CreateWindow() returns.)
Yes, CreateWindow() also returns a copy of the handle, but stuff
happens *before* the handle is returned, and in order for the
class to properly handle it, the handle is passed along with
WM_CREATE (and, in fact, with another message called WM_NCCREATE,
but we can ignore that for now).
The subclass has NO access to the window handle whatsoever before
the message comes, so no, it can't "pretend" to have received the
handle because that wouldn't be of any use.