Windows编程入门教程
主要参考龙书 《DirectX 12 3D 游戏开发实战》 的附录A 为个人的笔记整理
环境:VS2019
这里分析的是我们的示例代码 HelloWorld_Win.cpp
2.3 通过 GetMessage 函数的返回值来判断消息类型,这时可以通过 TranslateMessage 函数来实现键盘按键的转换,特别是将虚拟键消息转换为字符消息;通过 DispatchMessageW 函数来把消息分派给对应的窗口过程
可以看到,消息循环与之前的窗口之间的联系是通过 GetMessage 这个函数获取消息来做到的。这样才把 Run 函数与之前所创立的窗口联系了起来。除了 GetMessage 函数,还有 PeekMessage 函数等。
- 消息的真正处理函数是通过窗口过程做到的。
- 而窗口过程被绑定在窗口类实例上。
- 该实例在 CreateWindowW 函数中返回出它对应的句柄,句柄主要可以当作很多函数的参数。
- 通过在消息循环的代码中(这里在 Run 中)的对应函数(这里是 GetMessage )把消息的一些信息填充到了所创建的消息实例中,其中就包括了该消息对应窗口的句柄。然后通过 DispatchMessageW 函数(参数是该消息实例的地址,这里是 &msg)去分派给该窗口对应的窗口过程