码迷,mamicode.com
首页 > Windows程序 > 详细

学习windows编程 day2 之滚动条使用

时间:2018-03-03 23:30:52      阅读:252      评论:0      收藏:0      [点我收藏+]

标签:使用   需要   鼠标   客户   消息   pos   windows编程   bsp   int   

相关函数:

setscrollrange,setscrollpos,getscrollrange,getscrollpos

使用滚动条时我们需要进行的操作:

1.初始化滚动条范围和位置

在窗口创建时WM_CREATE响应时可以完成

SetScrollRange(hwnd, SB_VERT, 0, NUMLINES,FALSE);
SetScrollPos(hwnd, SB_VERT, 0, TRUE);

2.处理窗口过程的滚动条消息

在响应WM_VSCROLL时处理

switch(LOWORD(wParam))
{
   case SB_LINEUP:
         ....
         break;
   case SB_LINEDOWN:
         ....
         break;
   case SB_PAGEUP:
         ....
         break;
   case SB_PAGEDOWN:
         ....
         break;
   case SB_THUMBTRACK:
         ....
         break;
   case SB_THUMBPOSITION:
         ....
         break;
}    

注意在wParam参数中的低十六位中可以获取鼠标在滚动条上的动作使用LOWORD(wParam)

当滚动条动作为SB_THUMBPOSITION或SB_THUMBTRACK时,可以在wParam参数中的高十六位中获取位置HIWORD(wParam)

3.更新滑块位置

SetScrollPos(hwnd, SB_VERT, XXX, TRUE);

4.根据滚动条变化更新客户端内容

可以在处理滚动条消息是设置全局参数,在WM_PAINT响应时做出响应更新

为了及时更新客户端内容

可以使用

InvalidateRect(hwnd, NULL, TRUE);

向消息队列中发送消息WM_PAINT,此消息会放在消息队列后面,知道其他消息处理完毕才会响应

或者使用

UpdateWindow(hwnd);

非队列化消息,跳过消息循环机制直接处理更新窗口

 

学习windows编程 day2 之滚动条使用

标签:使用   需要   鼠标   客户   消息   pos   windows编程   bsp   int   

原文地址:https://www.cnblogs.com/ssyfj/p/8503319.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!