Defining a custom *constructor* (not initializer!)
Mehrdad
wfunction at hotmail.com
Fri May 11 07:04:00 PDT 2012
> I'm probably not getting the entire picture here, but I assume
> from your description that CreateWindow directly calls your
> WndProc. If that is the case, isn't it guaranteed that after
> the base ctor runs the class has received the WM_CREATE
> message? I mean, the only issue happens when you are not quite
> through the ctor chain, no?
Right, what I'm saying is that it's the *subclass* who needs the
notification more, than anyone else (although, for other reasons,
the base class needs it as well).
The whole point is to get the messages to the *subclasses*
properly...
>> Or something else... there are a ton of situations that can
>> happen -- such as MDI window creation, etc. -- that don't
>> happen too often, but happen often enough that you simply
>> can't assume you can get by without allowing them to handle
>> the messages.)
>
> You can use another mechanism to decide. for instance:
>
> class Window
> private bool inCreateWindow = false;
> ...
> final public void processMessage(int message)
> {
> if(inCreateWindow && message == WM_CREATE)
> {
> // handle specially
> }
> ...
> }
> this()
> {
> inCreateWindow = true;
> window = CreateWindow(&processMessage);
> inCreateWindow = false; // all WM_CREATE messages will
> now go through normal mechanism.
> }
> }
>
> -Steve
More information about the Digitalmars-d
mailing list