win32滚动笔记

本文介绍了如何在Windows应用程序中设置垂直和水平滚动条,并详细解释了如何通过消息处理函数来控制滚动条的行为,包括计算每行每列的宽度、设置滚动条的位置以及响应滚动条的滚动事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、需要在CreateWindow的第三个参数中包括窗口样式(WS)标识符WS_VSCROLL(垂直卷动)和/或WS_HSCROLL(水平卷动);
2、在消息处理函数 WndProc 中的case WM_SIZE 中根据像素点计算并记录每行没列的宽度;
3、在case WM_CREATE 中添加:
SetScrollRange (hwnd, SB_VERT, 0,99, false) ;//取得滚动条的目前范围
SetScrollPos (hwnd, SB_VERT, iVscrollPos, TRUE) ;//用于设置滚动条位置
4、在case WM_PAINT 中计算每行的像素大小:int y = cyChar * (i - iVscrollPos)
6、设置无效区域:InvalidateRect (hwnd, NULL, TRUE) ;
5、滑动块的位移:
Windows给窗口消息处理程序发送WM_VSCROLL(供上下移动)和WM_HSCROLL(供左右移动)消息。在滚动条上的每个鼠标动作都至少产生两个消息,一条在按下鼠标按钮时产生,一条在释放按钮时产生。
wParam的低字组是一个数值,它指出了鼠标对滚动条进行的操作。这个数值被看作一个「通知码」

define SB_LINEUP 0

define SB_LINELEFT 0

define SB_LINEDOWN 1

define SB_LINERIGHT 1

define SB_PAGEUP 2

define SB_PAGELEFT 2

define SB_PAGEDOWN 3

define SB_PAGERIGHT 3

define SB_THUMBPOSITION 4

define SB_THUMBTRACK 5

define SB_TOP 6

define SB_LEFT 6

define SB_BOTTOM 7

define SB_RIGHT 7

define SB_ENDSCROLL 8

鼠标滚动例子:

include

include

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值