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.

Reply via email to