win32滚动笔记

来源:互联网 发布:单页面淘宝客 编辑:程序博客网 时间:2024/06/16 02:53

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

0 0
原创粉丝点击