我已经习惯于认为WM_CREATE是窗口接收到的第一条消息。但是,当在顶级窗口上测试此假设时,事实证明它是错误的。在我的测试中,WM_MINMAXINFO出现为第一条消息。
那么,保证窗口接收到的第一条消息是什么?
最佳答案
你是在自问自答。我也看到Windows XP SP3上的WM_GETMINMAXINFO,然后是WM_NCCREATE,WM_NCCALCSIZE,最后是WM_CREATE,直到CreateWindowEx()甚至还没有将句柄返回给正在创建的窗口。什么垃圾
普遍的回答是,在涉及对象的有序创建和销毁方面,Microsoft不称职。他们用Windows,COM和设备驱动程序弄错了。总是有一些catch-22,其中一个对象的一半被创建或一半被破坏,这需要一些回旋的解决方案来产生可靠的产品。
关于winapi - Windows API : What is the first message a window is guaranteed to receive?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1741296/