1.获得客户区的途径
a.对于最大化的窗口有GetSystemMetrics(SM_CXFULLSCREEN) -> 宽度
GetSystemMetrics(SM_CYFULLSCREEN) ->高度
b.调用GetClientRect()来获取当前客户区的大小
c.当窗口的客户区部分大小改变时,操作系统将给应用程序发送WM_SIZE消息,
并把客户新的宽度和高度分别存放在lParam参数的低16位和高16位,
至于分离lParam的高低16位可以用宏LOWORD(lParam)和HIWORD(lParam).
2.安全字符串的头文件为strsafe.h
3.如何添加滚动条?
在CreateWindow()的时候,在第三个参数加上WS_VSCROLL(垂直),或者WS_HSCROLL(水平);
V->Vertical; H->Horizontal
4.滚动条的滚动功能?
总体上分为滚动一行,滚动一页,用鼠标拖着滚。
5.当滚动条被使用时,会触发WM_VSCROLL消息 或者 WM_HSCROLL消息
处理WM_VSCROLL消息 或者 WM_HSCROLL消息时,关注wParam。
wParam的低16位表明鼠标对滚动条的动作(称为通知码,SB开头的标识符),高16位表明滑块的最终位置。
6. 给窗口添加滚动条会改变窗口原本的尺寸吗?0oce^nS
DP?>o
答:不会,添加滚动条,只会影响到该窗口客户区的尺寸,整个窗口的大小是不变的.A
$0JOH2
7. 如何获取滚动条的尺寸?dOHLe,CQN
XoxdI
答:使用 GetSystemMetrics 函数即可获得有关滚动条的所有尺寸,以下根据需求对号入座。hTv9W
=8ZF0WC+l
SM_CXHSCROLL(21) 水平滚动条上箭头位图的宽度*
SM_CXVSCROLL(2) 垂直滚动条的宽度
SM_CYHSCROLL(3) 水平滚动条上箭头位图的高度xZAwE#h(
SM_CYVSCROLL(20) 垂直滚动条的宽度_{lY]bxp7D
SM_CYVTHUMB(9) 垂直滚动条滑块框的高度jynY1
#^'dy
8.wParam:指出窗口的新状态
wParam 参数可以是下列值之一:
值 | 含义 |
SIZE_MAXHIDE(4) | 当该应用程序的其他窗口被最大化的时候,消息被发送往所有的弹出窗口 |
SIZE_MAXIMIZED(2) | 该窗口被最大化 |
SIZE_MAXSHOW(3) | 当该应用程序的其他窗口已经恢复到原来大小的时候,消息被发送往所有的弹出窗口 |
SIZE_MINIMIZED(1) | 该窗口被最小化 |
SIZE_RESTORED(0) | 该窗口的大小发生变化,但不是最大化(SIZE_MAXIMIZED)或最小化(MINIMIZED) |