VS2010 C++学习(1):滚动条的设计总结
来源:互联网 发布:云计算开源平台 编辑:程序博客网 时间:2024/05/16 07:54
VS2010 C++学习(1):滚动条的设计总结
学习VC++编制的滚动条程序.。
一、 主要内容:
1. 对话框中的滚动条设计;
2. 编辑框中的滚动条设计;
3. 列表框中的滚动条设计;
二、 设计实现:
1、 对话框中的滚动条设计;
· 在资源编辑器中,选择在属性对话框中的水平滚动和垂直滚动样式。
· 选择调整大小的边框样式,以使该对话框可调整其大小。
· 重写 WM_VSCROLL和 WM_HSCROLL 消息处理程序。
· 重写设置滚动条区域,如果大小减小到小于原始大小的 WM_SIZE消息处理程序。
名称
属性
Border
Resizing
Horizontal Scrollbar
True
Vertical Scrollbar
True
1)添加成员变量到对话框类中
int m_nCurHeight; //存储对话框中的当前高度
int m_nScrollPos; //存储当前垂直滚动位置
int m_nCurWidth; //存储对话框中的当前宽度
int m_hScrollPos; //存储当前水平滚动位置
CRect m_rect; //对话框原始大小
2)若要获取原始窗口的大小,请将下行添加到OnInitDialog方法:
GetWindowRect(m_rect);
m_nScrollPos = 0; //垂直滚动位置0
m_hScrollPos = 0; //水平滚动位置0
3) OnSize方法中添加消息处理程序。
判断当前对话框的大小,并与对话框原始大小进行比较。然后计算出垂直和水平滚动条的最大值,写入SCROLLINFO中去。
4) 将 WM_VSCROLL消息的消息处理程序添加到OnVScroll方法中,WM_HSCROLL 消息的消息处理程序添加到OnHScroll方法中。
设计响应滚动条的事件。
5) 使用的函数
l SetScrollInfo(SB_HORZ, &hsi, TRUE);
l SetScrollPos(SB_HORZ,m_hScrollPos,TRUE);
l ScrollWindow(-nDelta,0);
函数原型:int SetScrollInfo(HWNDhWnd,int fnBar,LPSCROLLINFOlpsi,BOOL fRedraw);
函数功能:该函数设置滚动条参数,包括滚动位置的最大值和最小值,页面大小,滚动按钮的位置。如被请求,函数也可以重画滚动条。
参数:
hWnd:滚动条控件或带标准滚动条的窗体句柄,由fnBar参数决定。
fnBar:指定被设定参数的滚动条的类型。这个参数可以是下面值,含义如下:
SB_CTL:设置滚动条控件。而参数hwnd必须是滚动条控件的句柄。
SB_HORZ:设置所给定的窗体上标准水平滚动条参数。
SB_VERT:设置所给定的窗体上标准垂直滚动条参数。
lpsi:指向SCROLLINFO结构。在调用SetScrollInfo之前,设置SCROLLINFO结构中cbSize成员以标识结构大小,设置成员fMask以说明待设置的滚动条参数,并且在适当的成员中制定新的参数值。成员fMask可以为下面所列复合值,含义如下:
SIF_DfSABLENOSCROLL:如果滚动条的新参数使其为没必要,则使滚动条无效而不再移动它。
SIF_PAGE:设置滚动页码值到由Ipsi指向的SCROLLINFO结构的nPage成员中。
SIF_POS:设置滚动位置值到由lpsi指向的SCROLLINFO结构的nPos成员中。
SIF_RANGE:设置滚动范围值到由lpsl指向的SCROLLINFO结构的nMin和nMax成员中。
fRedraw:指定滚动条是否重画以反映滚动条的变化。如果这个参数为TRUE,滚动条将被重画,否则不被重画。
返回值:返回值是滑块的当前位置。
2、 编辑框中的滚动条设计;
单行编辑框控件无滚动条,多行编辑框控件才有滚动条。
1)Edit1属性:
名称
属性
说明
Multiline
True
多行编辑框
Horizontal Scroll
True
Vertical Scroll
True
Auto HScroll
True
Auto VScroll
True
2)多行编辑框类的方法:
设置好后多行编辑框控件自动管理滚动条。
3、 列表框中的滚动条设计;
1)垂直滚动条设计
只需设置属性即可:
名称
属性
说明
Vertical Scroll
True
2)水平滚动条设计
注意:需要将水平滚动条的属性设为真,否则即使调用下面的函数也不会出现水平滚动条。
名称
属性
说明
Horizontal Scroll
True
通过调用SendDlgItemMessage向对话框发送设置水平滚动条宽度信息来显示水平滚动条 。
函数SendDlgItemMessage(IDC_LIST2, LB_SETHORIZONTALEXTENT, (WPARAM)s.cx,0);
函数原型:LRESULT SendDlgItemMessage( int nID, UINTmessage, WPARAM wParam = 0, LPARAM lParam = 0 );
LB_SETHORIZONTALEXTENT 为设置滚动条宽度信息。发送消息时,wParam为滚动条的长度(以像素为单位,可通过计算得出准确的长度)。lParam无用。
- VS2010 C++学习(1):滚动条的设计总结
- datagrid 滚动条的设计
- MFC滚动条的设计
- 网页滚动条的设计
- 页面滚动条的总结
- DataGrid应用(二) —— 滚动条的设计
- vs2010 DataGridView 没有滚动条
- VS2010/MFC入门编程二十一(滚动条控件Scroll Bar 的使用)
- VS2010-DataGridView滚动条不可用的解决
- 滚动条(1)
- 维护Panel的滚动条ScrollBars位置(C#)
- 维护Panel的滚动条ScrollBars位置(C#)
- 滚动条的创建(1)
- 滚动条控件Scroll Bar(VS2010/MFC)
- 浏览器滚动条的参数总结
- 浏览器滚动条的参数总结
- 浏览器滚动条的参数总结
- 浏览器滚动条的参数总结
- hdu 1242 优先级队列 bfs
- ECshop首页特价产品倒计时
- C#获取属性纯文本
- Mat 工具 能够做的事情
- VS2010 的卸载方法
- VS2010 C++学习(1):滚动条的设计总结
- 判断一年的第几天
- ree Heap block xxxxxxxx modified at xxxxxxxx after it was freed (转)
- 大端与小端存储模式详解
- C语言自增自减运算符深入剖析
- 标签数据库的设计
- CString与const char*的相互转换
- Smartforms 中更改默认编辑器的两种方法
- MFC中上下控件的使用