加载中…
个人资料
pengdexin
pengdexin
  • 博客等级:
  • 博客积分:0
  • 博客访问:63,546
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

Win32程序滚动条简介(一)

(2013-01-02 18:25:25)
标签:

it

分类: Win32API学习笔记

滚动条简介(一)

1、在Win32程序中,要创建带滚动条的窗口,只需要在CreateWindow()函数的第3个参数中加上 WS_HSCROLL和

   WS_VSCROLL这两个窗口风格标识符。

 

2、设置、获取滚动条的范围和位置的API

 

2.1、设置滚动条的范围

   BOOL SetScrollRange(
   HWND
hWnd   // handle to window
   int nBar    // scroll bar
   int nMinPos // minimum scrolling position
   int nMaxPos // maximum scrolling position
   BOOL bRedraw  // redraw flag
  );

 

2.2、获取滚动条的范围

  BOOL GetScrollRange(
  HWND
hWnd      // handle to window
  int nBar       // scroll bar options
  LPINT lpMinPos // receives minimum position
  LPINT lpMaxPos   // receives maximum position
 );

 

2.3、设置滚动条的位置

  int SetScrollPos(
  HWND
hWnd    // handle to window
  int nBar     // scroll bar
  int nPos     // new position of scroll box
  BOOL bRedraw   // redraw flag
 );

 

2.4、获取滚动条的位置

  int GetScrollPos(
  HWND
hWnd, // handle to window
  int nBar // scroll bar options

 );

 

3、在Win32程序中使用滚动条时,程序需要和Windows共同负责维护滚动条以及滑块在滚动条中的位置。

3.1、Windows负责如下任务:

     1、处理滚动条中的所有鼠标消息。

     2、当用户单击滚动条时,提供一种反向显示的闪烁。

     3、当用户拖动滑块时, 在滚动条内移动滑块。

     4、向拥有滚动条的窗口的窗口过程发送滚动条消息。

3.2、程序负责如下任务:

     1、初始化滚动条的范围和位置。

     2、处理传送给窗口过程的滚动条消息。

     3、更新滑块的位置。

     4、根据滚动条的变化更新客户区的内容。

 

4、滚动条消息

    用户单击滚动条或拖动滑块时, Windows向窗口过程发送WM_VSCROLL消息或者WM_HSCROLL消息。在滚动条上的任何鼠标动作会产生至少两条消息:一条在鼠标按下时,另一条在鼠标键松开时。

   消息附加参数含义:

   wParam: 其低位字代表鼠标在滚动条上的动作。这个值被称为“通知码”,由一个以SB开头的标识符定义

   lParam:当滚动条时窗口的一部分时,可以忽略lParam参数;它只用于滚动条是子窗口时,通常是在对话

   框中。

   winuser.h文件中定义的“通知码”

   #define     SB_LINEUP           0

   #define     SB_LINELEFT         0

   #define     SB_LINEDOWN         1

   #define     SB_LINERIGHT        

   #define     SB_PAGEUP           2

   #define     SB_PAGELEFT         2

   #define     SB_PAGEDOWN         3

   #define     SB_PAGERIGHT        3

   #define     SB_THUNBPOSITION    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

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有