第012讲:滚动条
知识点回顾:1. 获得客户区的尺寸有几种途径
如果你的客户区永远都是最大化状态,那么你可以通过上节课我们介绍的 GetSystemMetrics 函数,通过将 SM_CXFULLSCREEN 和 SM_CYFULLSCREEN 作为参数来获得当窗口被最大化时客户区的尺寸。
当然,你可以通过实时调用 GetClientRect 函数来获取当前客户区的大小。这都没有问题,但如果每次窗口尺寸一改变,我们就要调用一次 GetClientRect 函数,就显得没什么效率了。
那有没有更好的方法呢?其实是有的,当主窗口的客户区部分大小改变时,操作系统将给应用程序发送 WM_SIZE 消息,并把客户区新的宽度和高度分别存放在 lParam 参数的低 16 位和高 16 位。
2. 如何从 32 位的 lParam 参数中分离出低 16 位和高 16 位呢?
Windows 提供了两个宏来解决这个问题:LOWORD 和 HIWORD 宏
3. 如何在窗口上显示滚动条?
在 CreateWindow 的时候,第三个参数加上 WS_VSCROLL 或 WS_HSCROLL 即可添加对应的垂直滚动条或水平滚动条。
4. 当用户单击滚动条或拖动滑块时,Windows 就会向窗口过程发送 WM_VSCROLL 消息或 WM_HSCROLL 消息。
小甲鱼又回归了吗:loveliness:
页:
[1]