VC++之Scroll控件

原创 2007年09月20日 11:29:00
Scroll Bar一般不会单独使用,因为SpinCtrl可以取代滚动条的一部分作用,但是如果你需要自己生成派生窗口,滚动条还是会派上一些用场。创建一个滚动条可以使用成员函数:

BOOL CEdit::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );

其中dwStyle将指明该窗口的风格,除了子窗口常用的风格WS_CHILD,WS_VISIBLE外,你可以针对滚动条指明专门的风格。
SBS_VERT 风格将创建一个垂直的滚动条。
SBS_HORZ 风格将创建一个水平的滚动条。


在创建滚动条后需要调用void SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE )设置滚动范围,

int GetScrollPos( )/int SetScrollPos( )用来得到和设置当前滚动条的位置。

void ShowScrollBar( BOOL bShow = TRUE );用来显示/隐藏滚动条。

BOOL EnableScrollBar( UINT nArrowFlags = ESB_ENABLE_BOTH )用来设置滚动条上箭头是否为允许状态。nArrowFlags可取以下值:

ESB_ENABLE_BOTH 两个箭头都为允许状态
ESB_DISABLE_LTUP 上/左箭头为禁止状态
ESB_DISABLE_RTDN 下/右箭头为禁止状态
ESB_DISABLE_BOTH 两个箭头都为禁止状态


如果需要在滚动条位置被改变时得到通知,需要在父窗口中定义对消息WM_VSCROLL/WM_HSCROLL的映射。方法为在父窗口类中重载afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar )/afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar ) 所使用的消息映射宏为:ON_WM_VSCROLL( ),ON_WM_HSCROLL( ),在映射宏中不需要指明滚动条的ID,因为所有滚动条的滚动消息都由同样的函数处理。在OnHScroll/OnVScroll的第三个参数会指明当前滚动条的指针。第一个参数表示滚动条上发生的动作,可取以下值:
SB_TOP/SB_BOTTOM 已滚动到顶/底部
SB_LINEUP/SB_LINEDOWN 向上/下滚动一行
SB_PAGEDOWN/SB_PAGEUP 向上/下滚动一页
SB_THUMBPOSITION/SB_THUMBTRACK 滚动条拖动到某一位置,参数nPos指明当前位置(参数nPos在其它的情况下是无效的)
SB_ENDSCROLL 滚动条拖动完成(用户松开鼠标)
 

相关文章推荐

鸡啄米vc++2010系列25(滚动条控件Scroll Bar)

滚动条控件简介        滚动条大家也很熟悉了,Windows窗口中很多都有滚动条。前面讲的列表框和组合框设置了相应属性后,如果列表项显示不下也会出现滚动条。滚动条分为水平滚动条(Horiz...
  • luoru
  • luoru
  • 2015年05月18日 15:29
  • 811

VC++之控件之改变编辑框内字体颜色

添加组框、单选按钮、编辑框              添加类内变量colour       添加m_edit、m_CsEdit变量 ...
  • AmoyCHC
  • AmoyCHC
  • 2012年08月29日 17:15
  • 3293

VC++编程环境、正则表达式引擎、皮肤控件、编程助手、Xml解析器的选择

●VC++编程环境的选择: VS2012还没出正式中文版,VS2010的启动速度相对VS2008有点慢,如需支持.net2.0还需另装.net3.51才行,且BCG等插件不知能否良好运行(未试验...
  • mdjtf
  • mdjtf
  • 2012年07月10日 11:32
  • 1115

BPM, 业务流程图, 商业智能图,工作流自动化图,设计开发工具,可视化VC++控件源代码组件库

BPM, 业务流程图, 商业智能图,工作流自动化图,设计开发工具,可视化VC++控件源代码组件库 -- 100%源码全开放企业级业务流程解决方案!   ...

VC++中轻松实现滑动控件

滑动控件是Windows中最常用的控件之一。一般而言它是由一个滑动条,一个滑块和可选的刻度组成,用户可以通过移动滑块在相应的控件中显示对应的值。通常,在滑动控件附近一定有标签控件或编辑框控件,用于显示...

VC++中不能为控件添加成员变量 深入本质

项目疑问 提出问题 1,在资源视图--右键单击--添加--资源,选择对话框后—在里面添加文本框时,不能为文本框添加成员变量。而在“解决方案资源管理器”中右键单击添加资源—对话框后,可以使用添加成员...

VC++ mscomm控件接收字符大于8字节的解决方法(延时)

有很多人遇到串口事件触发(我理解是中断)时只能接收8个字节,这是由于串行通信相对于并行通信时间比较长,所以传输时间必须要考虑在内,有的人的解决方法是把SetRThreshold()内的值设置大一点,但...

电力仿真, 电力可视化源码库,MATLAB仿真,Multisim仿真,PSASP仿真, 电力地理接线图,VC++ 控件源程序

电力仿真, 电力可视化源码库,MATLAB仿真,Multisim仿真,PSASP仿真, 电力地理接线图,VC++ 控件源程序 -- 100%源码开放,全球唯一专为电力仿真而开发的VC++...

VC++ Tab Control控件的使用

网上介绍使用Tab Control控件,好像说的都不是很详细, 我一小菜这边随便说说, 见笑.1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish.2. 删除...

PNG透明窗体全攻略(控件不透明)vc++程序指导

这两天在研究透明窗体,总算略有小成。网上大部分文章都是介绍到把窗体弄透明就没有下文。其实窗体透明并不难,难就难在透明的窗体上还要放控件。今 天我就把窗体透明一直到控件不透明怎么制作一块给写了吧。先截张...
  • KXF8537
  • KXF8537
  • 2011年05月03日 16:04
  • 2665
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC++之Scroll控件
举报原因:
原因补充:

(最多只允许输入30个字)