通用滚动条-Read.doc
文本预览下载声明
福州瑞芯微电子有限公司
HYPERLINK mailto:lingzhaojun@ lingzhaojun@ 第 PAGE 3 页 QQ
通用滚动条
一、基本特征
滚动条主要用于菜单,文本中需要滚动显示的情况下。有时候大图片的局部显示也可以使用滚动条。考虑到一般需求,目前的滚动条只开发有垂直滚动条,若需要水平滚动条,用户可以参考现有程序自行开发。
垂直滚动条一般显示在屏幕的右边,有两个最重要的作用,其一是用来指示当前显示的内容在整个要显示中的百分比。其二是作为一种辅助输入,替代按键和触摸屏,来拉动滚动条达到上下翻页的目的。
图片类的代码位于uiscrollbar.c中
滚动条的默认风格如下(后续可支持更多种类的滚动条)
滑块长度 L
当前位置y
高 h
主要包含了四个图标元素:
下按钮 上按钮 底图 滑块
基本类似于windows操作系统中的滚动条,没有背景的大图,因此不受长度限制,上下箭头可以作为按钮接受触摸按键的输入,低图和滑块也可支持触摸屏输入。
如上图,滚动条的当前位置y和滚动条长度L可任意设置,滚动条的高度h也可在窗口创建时设为任意高,滚动窗口会自动伸缩。程序运行时,主要有两个参数在变化,即当前位置y和滚动条长度L,设置的参数以百分比的形式传递给窗口。
即位置百分比=y/h* 100%
滑块长度百分比=L/h* 100%
二、数据结构
滚动条的的数据结构如下:
typedef struct
{
UINT16 TopHight; 上箭头高度
UINT16 ScrollHight; 滚动条高度
UINT16 ScrollWeight; 滚动条宽度
UINT16 ScrollLen; 滚动条长度
UINT16 IconScroll; 滚动条图标
UINT16 Iconback; 滚动条背景图标
UINT16 IconUp; 滚动条顶部按钮图标
UINT16 IconDown; 滚动条底部按钮图标
UINT16 Percent; 当前滚动条的位置百分率
UINT16 CurPositionY;
}W_ScrollBar;
三、响应的消息
滚动条响应下列消息:
详细描述如下:
WM_SetPercent 设置滚动条的位置,使滚动条滑块处于指定位置。参数wParam等于上图中的(y/h)×100。
WM_SetScrollLen 设置滚动条长度,参数wParam等于上图中的(L/h)×100,当滑块长度需要变化时,可以使用本消息设置。
WM_GetPercent ???取滚动条的当前位置,返回上图中的(y/h)×100,当上级窗口需要获得当前滚动条的位置时,向滚动条窗口发送此消息获得,见菜单类的WM_COMMAND消息中有此类处理。
WM_PAINT 画屏消息:滚动条响应这个刷屏消息时, 先判断屏幕是否需要更新,若需要更新则将滚动条的各项元素绘制到屏幕上
本控件可接受触摸屏,按键输入。当滚动条位置有变化时,以command形式发送给上级窗口。
四、使用示例:
如下,即可产生一个滚动条窗口接受输入。
WindowCreate( win ,
WS_TICK|WES_ScrollDefault,
1017,
270,33,
12,200,
0,
BID_Scroll,
0,
NULL,
WinScrollProcMap,
NULL );
和父窗口交互等更详细的操作,请参考带滚动条的菜单类例程。
福州瑞芯微电子有限公司
2007年8月
显示全部