我知道这是一个愚蠢的问题,但是当您可以创建不带有WM_CREATE消息的窗口时,有什么意义呢?
在WM_CREATE之外调用void CreateWindowA起作用,那怎么办?
WM_CREATE
消息是在创建窗口且尚未显示时由窗口过程接收的。您可以准备初始状态。例如,您可以创建控件(子窗口),设置控件的默认值等。如果出现问题,可以取消窗口的创建,并且该窗口不会显示。换句话说,您可以在WM_CREATE
中向CreateWindow
API添加自定义扩展名。
应用程序可能想要/需要拦截WM_CREATE
消息的原因很多。例如,您可能要检查一个特定条件,并在该条件错误的情况下阻止实际创建:您可以通过从处理消息(-1
)的WndProc
返回see the documentation来执行此操作:] >
如果应用程序处理此消息,它应返回零,以继续创建窗口。如果应用程序返回–1,则窗口被破坏并且CreateWindowEx
或CreateWindow函数返回NULL句柄。