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 滚动条拖动完成(用户松开鼠标)
 

Slider控件、Scrollbar控件、ScrollView控件、Window窗口、GUISkin控件样式

Slider控件: var hSliderValue : float = 0.0;//水平滑动条数值 var vSliderValue : float = 0.0;//垂直滑动条数值 fun...
  • DynastyTing
  • DynastyTing
  • 2015年06月15日 09:56
  • 646

vc++ 添加可以滚动整个窗口的滚动条(水平和竖直)并可使用鼠标滚动轮和键盘上的上下键控制滚动条

水平和竖直的滚动条可以在窗口的属性中添加
  • zhengliuguo
  • zhengliuguo
  • 2014年06月30日 14:44
  • 1702

VC实现自定义控件步骤

VC实现自定义控件   一. 控件的最小实现 1.1 添加MFC类CMyCtrl 添加MFC类CMyCtrl, 继承CWnd.(用向导添加, 自己手动写代码都可以).   1.2 添加CMyCtrl:...
  • cay22
  • cay22
  • 2015年01月24日 16:17
  • 1752

VC之列表控件排序

本文简单介绍下VC列表控件排序功能实现。 1.新建对话框应用程序 新建对话框应用程序,并且添加List列表控件。 2.添加相关变量和函数 class CListSortDl...
  • bingdianlanxin
  • bingdianlanxin
  • 2015年04月05日 20:06
  • 1047

VC++中List Control控件的使用方法介绍

List Control控件是使用频率比较高的一个控件,用它可以很好的做为数据报表的工具,而且比较方便操作和响应,经常可以和数据库相互配合,它就像数据库中的一张表一样,来显示数据库中的数据。 下面结...
  • zdhlwt2008
  • zdhlwt2008
  • 2015年12月09日 09:47
  • 613

vc++设置控件的背景色

重载OnCtlColor函数,这个是必须的 。 设置控件的背景颜色:  第一:  afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT...
  • herorenme
  • herorenme
  • 2013年10月08日 17:21
  • 427

VC ActiveX 控件 开发总结

VC 制作ActiveX 控件(OCX) http://ileson.iteye.com/blog/1002910 1、vc6下建立一下activeX工程     详见http://hi...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年03月27日 12:19
  • 1532

VC 表格的生成

一.   右键单击工程节点,然后选择添加类,如下图: 二.   添加TypeLib中的MFC类,如下图: 三.   选择文件,打开MSWORD.OLB,...
  • u011269801
  • u011269801
  • 2016年11月30日 23:17
  • 637

图解VC++开发ActiveX控件C#调用

1 新建ActiveX控件工程 2 编译,运行 使用下图所示VC++自带测试工具来测试ActiveX控件; 3 测试容器 插入刚做的ActiveXDemo1控件 4...
  • bcbobo21cn
  • bcbobo21cn
  • 2016年04月25日 14:08
  • 1808

vc++ MFC-CListCtrl控件的16条常用操作

1. CListCtrl 样式及设置 LVS_ICON: 每个item显示大图标 LVS_SMALLICON: 每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REP...
  • chinafe
  • chinafe
  • 2013年03月16日 22:40
  • 1136
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:VC++之Scroll控件
举报原因:
原因补充:

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