[C ++ WIN32 WM_CREATE消息目的

问题描述 投票:0回答:2

我知道这是一个愚蠢的问题,但是当您可以创建不带有WM_CREATE消息的窗口时,有什么意义呢?

在WM_CREATE之外调用void CreateWindowA起作用,那怎么办?

c++ winapi
2个回答
1
投票

WM_CREATE消息是在创建窗口且尚未显示时由窗口过程接收的。您可以准备初始状态。例如,您可以创建控件(子窗口),设置控件的默认值等。如果出现问题,可以取消窗口的创建,并且该窗口不会显示。换句话说,您可以在WM_CREATE中向CreateWindow API添加自定义扩展名。


0
投票

应用程序可能想要/需要拦截WM_CREATE消息的原因很多。例如,您可能要检查一个特定条件,并在该条件错误的情况下阻止实际创建:您可以通过从处理消息(-1)的WndProc返回see the documentation来执行此操作:] >

如果应用程序处理此消息,它应返回零,以继续创建窗口。如果应用程序返回–1,则窗口被破坏并且CreateWindowEx

CreateWindow函数返回NULL句柄。
© www.soinside.com 2019 - 2024. All rights reserved.