windows 游戏编程大师 读书笔记

1、自动显示窗口的标识符:WS_VISIBLE。若无此标识符,则需用ShowWindow()手动显示所创的窗口。

2、UpdateWindow()产生一个WM_PAINT消息。

3、消息处理函数WinProc()中的参数hwnd只有当使用同一个窗口类创建的多个窗口时才起作用,此时,它表明消息来自哪个窗口。

4、WM_DESTROY在关闭窗口时产生,此消息并不终止应用程序,仅仅关闭窗口。在此之前产生一个WM_CLOSE的消息。

5、每处理一个消息后,用return (0);来退出WinProc(),且通知系统已经处理了该消息。

6、所有向WinProc()传递的参数都包含在MSG结构体中,且该结构体可在消息循环中由GetMessage()或PeekMessage()捕获。

7、<windowsx.h>包含一些有用的宏以及常量。WIN32_LEAN_AND_MEAN宏提示系统不要包含MFC的有关东西。

8、将字符串作为资源加载时,每行长度不能超过255个字符(包括常量本身在内)。

9、除了转义序列“\n”等不能放到字符串表单里,其他字符均可以,例如:%d、八进制码序“\015”等。

10、int LoadString()加载字符串资源,返回加载的字符串长度。

11、鼠标位置是相对于客户区而言的,不包括边界以及控件,鼠标传递的是相对于左上角(0,0)的坐标;鼠标按键编码(以MK_开头)在WM_MOUSEMOVE中处理。

12、自行发送消息的函数:

LRESULT SendMessage():向窗口传递一个要求立即处理的消息,在接收窗口处理完该消息后紧跟接收窗口的WinProc()函数返回,且返回值为WinProc()的返回值;

BOOL PostMessage():向消息队列里顺序插入一个消息,当轮到该消息时才执行,也就是说该函数传递的消息处理时有延迟,如果不在意这种短暂的延迟,则可以使用该函数传递消息,同时,该函数也不容易出现消息乱序。

......持续更新......

猜你喜欢

转载自www.cnblogs.com/heisen/p/8969522.html