VS2010 C++学习(1):滚动条的设计总结
进展条、滚动条和滑动条
进展条、滚动条和滑动条一、实验目的:设计一个对话框应用程序Ex_Color,其运行结果如图所示。
操作进展条、滚动条和滑动条控件可以调整RGB颜色的3个颜色分量:R(红色分量)G(绿色分量)B(蓝色分量),并根据用户指定的颜色填充控件。
二、实验环境:一台PC机,Windows 操作系统,Visual C++6.0开发环境。
三、实验步骤:1.创建工作文件夹创建工作文件夹“E:\Visual C++\吴文燕”文件中创建一个新的子文件“实验11”2.设计对话框(1)创建一个默认的基于对话框应用项目Ex_Input,在“新建”对话框中添加项目文件夹定位到“E:\Visual C++\吴文燕\实验11”(2)打开的对话框资源模板中,将对话框的标题属性改为“颜色控件属性”,删除“取消”按钮,并将“确定”按钮的标题属性改为“退出”(3)显示对话框网络,调整对话框的大小,参照图所示控件的布局,在对话框中添加相应的控件,调整控件的位置。
(4)打开MFC ClassWizard,在MFC ClassWizard的Member Variables页面中,确定Class name中是否已选择了CEx_ColorDlg,选中所需的控件ID标识符,双击或单击AddVariables按钮。
依次为控件添加成员变量。
3. 添加成员函数Draw(1)展开项目工作区窗口Class View中的CEx_ColorDlg类的所有结点(2)用鼠标右键单击CEx_ColorDlg类结点,从弹出的快捷菜单中选择“Add Member Function(添加成员变量)”,添加void Draw(UINT nID)这个成员函数(3)在Draw函数中添加代码4.添加初始化代码(1)在CEx_ColorDlg::OnInitDialog中添加代码(3)编译运行5. 完善代码(1)用MFC ClassWizard在CEx_ColorDlg类中映射IDC_EDIT_R, IDC_EDIT_G, IDC_EDIT_B按钮控件的EN_CHANGE消息,并添加代码(2)用MFC ClassWizard在CEx_ColorDlg类中映射IDC_SPIN按钮控件的UND_DELTAPOS消息,并添加代码(3)用MFC ClassWizard在CEx_ColorDlg类中添加映射WM_HSCROLL消息映射,并添加代码(4)编译运行并测试四、实验结果:五、思考题:1、在Ex_Color的基础上,若添加设置对话框的背景色功能,则应该如何添加代码?实验结果截图如下所示2、试述当单击旋转按钮控件的向上箭头时,流程是怎样的?答:当我们单击选择按钮的向上箭头时,根据m_nBValue+=pNMUpDown->iDelta这个语句变化而使得进展条随之变长,最大只到255。
VS2010 C++学习(1):滚动条的设计总结
VS2010 C++学习(1):滚动条的设计总结学习VC++编制的滚动条程序.。
一、主要内容:1.对话框中的滚动条设计;2.编辑框中的滚动条设计;3.列表框中的滚动条设计;二、设计实现:1、对话框中的滚动条设计;∙在资源编辑器中,选择在属性对话框中的水平滚动和垂直滚动样式。
∙选择调整大小的边框样式,以使该对话框可调整其大小。
∙重写 WM_VSCROLL 和 WM_HSCROLL 消息处理程序。
∙重写设置滚动条区域,如果大小减小到小于原始大小的 WM_SIZE 消息处理程序。
1)添加成员变量到对话框类中int m_nCurHeight; //存储对话框中的当前高度int m_nScrollPos; //存储当前垂直滚动位置int m_nCurWidth; //存储对话框中的当前宽度int m_hScrollPos; //存储当前水平滚动位置CRect m_rect; // 对话框原始大小2)若要获取原始窗口的大小,请将下行添加到OnInitDialog方法:GetWindowRect(m_rect);m_nScrollPos = 0; // 垂直滚动位置0m_hScrollPos = 0; // 水平滚动位置03) OnSize方法中添加消息处理程序。
判断当前对话框的大小,并与对话框原始大小进行比较。
然后计算出垂直和水平滚动条的最大值,写入SCROLLINFO中去。
4) 将 WM_VSCROLL 消息的消息处理程序添加到OnVScroll方法中,WM_HSCROLL 消息的消息处理程序添加到OnHScroll方法中。
设计响应滚动条的事件。
5) 使用的函数●SetScrollInfo(SB_HORZ, &hsi, TRUE);●SetScrollPos(SB_HORZ,m_hScrollPos,TRUE);●ScrollWindow(-nDelta,0);函数原型:int SetScrollInfo(HWND hWnd,int fnBar,LPSCROLLINFO lpsi,BOOL fRedraw);函数功能:该函数设置滚动条参数,包括滚动位置的最大值和最小值,页面大小,滚动按钮的位置。
浅谈VC_中滚动条的编程
AA2!4",MAN KMA; / / 定义视图变量
(,7!’) ; / / 实例化 KMA("48 AA2!4",MA (KMA ) ; / / 调用该函数获得绘图 E"&.4K-.4MA 映象模式 (R41,) ; / / 得到屏幕剪辑 区 KMAOPQ4,A2!K3$B 域 图S
水平滑块大 小反映水平 图形大小
("G"J FG" , "@%)=<K=E :&)A "??()*+IID=@%*F6%*G"
种是自定义滚动条,即在程序中自己定义滚动条 的大小与放置位置, 然后设置它的滚动参数; 另一 种是利用系统滚动条来设置滚动参数。这两种方 法在不同的绘图方式(指直接屏幕绘图与二次内 存缓冲绘图) 下有各自的使用优点。 第一种用在直 接屏幕绘图时很方便,通过参数定义能够方便地 控制滚动参数, 形象地设置屏幕滚动范围 (指屏幕 有一部分可不参与视图滚动,如图形的纵坐标和 横坐标所在的屏幕区域) , 还可经专门的滚动参数 定义设置滚动滑块的大小来反映整个视图大小的 变化等, 而且该滚动条在非像素 (即非 //01231 图形映象模式)绘图时能用逻辑坐标方便的设置 滚动参数;第二种方法用在内存绘图时能够简单 的实现浏览整个视图的功能,不需自定义滚动条 放置的位置与大小, 只需设置滚动参数即可。 因内 存绘图无闪屏现象出现,通过设置计时器还可以 流畅的滚动播放视图,编程中发现该滚动条只接 受设备坐标参数。下面分别讨论这两种滚动条的 编程方法。
系统滚动条编程
上面自定义滚动条在屏幕直接绘图时使用很
的终止位置 (R41,) ; / / 将区域变量转为设 KMAOP;&,$M& 备坐标 (R41,%24#,, R41,%X$,\ )*7+1.$223-.%Z$04[!"@$8 () , ; / / 放置水平条 ]] ) ,$), R41,%[!@,7
vb滚动条
滚动条(ScrollBar)滚动条常常用来附在某个窗口上帮助观察数据或确定位置,也可以用来作为数据输入的工具。
在日常操作中,我们常常遇到这样的情况:在某些程序中,如Photoshop ,一些具体的数值我们并不清楚,如调色板上的自定义色彩,这时,可以通过滚动条,用尝试的办法找到自己需要的具体数值。
在Visual Basic 中,滚动条分为横向(HscrollBar)与竖向(VscrollBar)两种,命名规则为:HsbX 或VsbX ,如HsbShow、VsbShow ,等等。
它们在工具箱上的图标如图所示:图一选中滚动条按钮,把鼠标指针放到界面设计区,然后拖动,画出符合自己要求的滚动条,或者直接双击该按钮,自动在界面设计区生成默认大小的滚动条,如图二所示:图二一、滚动条控件的属性:1、Max(最大值)与Min(最小值)属性:滚动块处于最右边(横向滚动条)或最下边(竖向滚动条)时返回的值就是最大值;滚动块处于最左边或最上边,返回的值最小,如图三所示:图三Max 与Min 属性是创建滚动条控件必须指定的属性,默认状态下,Max 值为32767 ,Min 值为0 。
本属性既可以在界面设计过程中予以指定,也可以在程序运行中予以改变,如:HsbShow.Min = 3HsbShow.Max = 302、Value(数值)属性:Value 属性返回或设置滚动滑块在当前滚动条中的位置,如图三所示。
改变滚动条value属性的方法有五种:直接在属性窗口中设定value值;鼠标单击两端箭头键改变滚动条数值;可将滚动框沿滚动条拖动到任意位置;用鼠标单击滚动条中滚动块两侧的部分,使滚动块以翻页的速度移动。
可以在程序运行中改变,如:HsbShow.Value = 243、SmallChange(小改变)属性:当用户单击滚动条左右边上的箭头时,滚动条控件Value 值的改变量就是SmallChange,如图四:图四4、LargeChange(大改变)属性:单击滚动条中滚动框前面或后面的部位时,引发Value 值按LargeChange 设定的数值进行改变,如图五:图五二、滚动条控件的事件:与滚动条控件相关的事件主要是Scroll 与Change时会触发Scroll 事件(但要注意,单击滚动箭头或滚动条时不发生Scroll 事件),滚动框发生位置改变后则会触发Change 事件。
第6讲 滚动条、滑动条、旋转按钮
第11讲滚动条、滑动条、旋转按钮一、滚动条1、滚动条:是一个具有直接输入焦点的独立窗口分水平滚动条和垂直滚动条两种2、滚动条类:在MFC中,滚动条由CScrollBar类进行管理3、常用函数:1)void SetScrollRange(int nMinPos,int nMaxPos,BOOL bRedraw=TRUE) 作用:设置滚动条的滚动范围。
参数: nMinPos——表示滚动位置的最小值nMaxPos——表示滚动位置的最大值bRedraw——重画滚动条的标志,为TRUE时立即重画,否则不立即重画。
2)int SetScrollPos( int nPos, BOOL bRedraw = TRUE );作用:设置滚动块的位置参数: nPos——表示滚动块的新位置bRedraw——重画滚动条的标志,为TRUE时立即重画,否则不立即重画。
4、滚动条的WM_HSCROLL和WM_VSCROLL消息:1)用户操作水平或垂直滚动条时,滚动条会向其父窗口发送WM_HSCROLL和WM_VSCROLL 消息,用户可在滚动条的父窗口类中对上述消息进行映射,获取以下消息映射函数: 2)WM_HSCROLL和WM_VSCROLL的消息映射函数:afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar ); afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar );参数: nSBCode——表示滚动条的通知消息。
对水平滚动条,常用值如下:SB_LEFT、SB_RIGHT……滚动到最左/右位置时发送的消息SB_ENDSCROLL……结束滚动时发送的消息SB_LINELEFT、SB_LINERIGHT……向左/右滚动时发送的消息SB_THUMBTRACK……拖动滚动块时发送的消息nPos——用于在通知消息为SB_THUMBPOSITION或SB_THUMBTRACK时表示滚滚动块的位置,否则不使用pScrollBar——若滚动消息源于滚动控件,则此参数为指向控件的指针;否则,此参数为NULL。
如何使用来创建一个可调整其大小的对话框 Visual C++ 中的滚动条
概要:本文介绍如何使用来创建一个可调整其大小对话框中滚动条。
该过程由四个基本部分组成:∙在资源编辑器中,选择在属性对话框中的水平滚动和垂直滚动样式。
∙选择调整大小的边框样式,以使该对话框可调整其大小。
∙重写WM_VSCROLL 和WM_HSCROLL 消息处理程序。
∙重写以设置滚动条区域,如果大小减小到小于原始大小WM_SIZE 消息处理程序。
更多信息:若要创建垂直滚动栏可调整其大小的对话框,请执行以下步骤:1.使用应用程序向导创建Microsoft 基础类(MFC) 基于对话框的应用程序。
2.在资源编辑器中,将添加到对话框资源模板中,某些控件属性中的对话框中,选择垂直滚动并选择调整大小的边框样式。
3.将以下受保护的成员变量添加到对话框类中:4.int m_nCurHeight;5.int m_nScrollPos;6.CRect m_rect;使用m_nScrollPos来存储当前垂直滚动位置。
使用m_nCurHeight来存储对话框中的当前高度并处理OnVScroll方法中滚动。
7.要获取原始窗口的大小,请将下行添加到OnInitDialog方法:8.GetWindowRect(m_rect);9.m_nScrollPos = 0;10.向WM_SIZE 消息设置滚动条范围的OnSize方法中添加消息处理程序。
将范围设置为0,如果大小增大到超过原始大小。
11.void CTestDlg::OnSize(UINT nType, int cx, int cy)12.{13.CDialog::OnSize(nType, cx, cy);14.15.// TODO: Add your message handler code here.16.m_nCurHeight = cy;17.int nScrollMax;18.if (cy < m_rect.Height())19.{20. nScrollMax = m_rect.Height() - cy;21.}22.else23. nScrollMax = 0;24.25.SCROLLINFO si;26.si.cbSize = sizeof(SCROLLINFO);27.si.fMask = SIF_ALL; // SIF_ALL = SIF_PAGE | SIF_RANGE| SIF_POS;28.si.nMin = 0;29.si.nMax = nScrollMax;30.si.nPage = si.nMax/10;31.si.nPos = 0;32. SetScrollInfo(SB_VERT, &si, TRUE);33.}34.将WM_VSCROLL 消息的消息处理程序添加到OnVScroll方法:35.void CTestDlg::OnVScroll(UINT nSBCode, UINT nPos,CScrollBar* pScrollBar)36.{37.// TODO: Add your message handler code here and/orcall default.38.int nDelta;39.int nMaxPos = m_rect.Height() - m_nCurHeight;40.41.switch (nSBCode)42.{43.case SB_LINEDOWN:44.if (m_nScrollPos >= nMaxPos)45.return;46.nDelta =min(nMaxPos/100,nMaxPos-m_nScrollPos);47.break;48.49.case SB_LINEUP:50.if (m_nScrollPos <= 0)51.return;52.nDelta = -min(nMaxPos/100,m_nScrollPos);53.break;54.55. case SB_PAGEDOWN:56.if (m_nScrollPos >= nMaxPos)57.return;58.nDelta =min(nMaxPos/10,nMaxPos-m_nScrollPos);59.break;60.61.case SB_THUMBPOSITION:62.nDelta = (int)nPos - m_nScrollPos;63.break;64.65.case SB_PAGEUP:66.if (m_nScrollPos <= 0)67.return;68.nDelta = -min(nMaxPos/10,m_nScrollPos);69.break;70.71. default:72.return;73.}74.m_nScrollPos += nDelta;75.SetScrollPos(SB_VERT,m_nScrollPos,TRUE);76.ScrollWindow(0,-nDelta);77.CDialog::OnVScroll(nSBCode, nPos, pScrollBar);78.}79.生成并运行该应用程序。
VS2010_MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)-软件开发-鸡啄米
gfffffffffffffffff... 持续关注~。请问鸡啄米交流群在哪呢? 31楼说得很合我意有木有。博主写得很... OnSetActive 函数本身有下... 照这个说法,什么都有缺点,那么什么都可以替 代 感谢鸡啄米 呵呵 MFC学得很受用 double r(3.0); VS... 投资二十元,净赚一千万,免费下载百万... 开始学MFC,本节内容蛮多的,有些难... 赞一个,不错,就这这博客看完一章后又...
void GetScrollRange(LPINT lpMinPos, LPINT lpMaxPos) const;
获取滚动条的滚动范围。参数lpMinPos指向滚动条滚动范围的最小值,参数lpMaxPos指向滚动 条滚动范围的最大值。
void SetScrollRange(int nMinPos, int nMaxPos, BOOL bRedraw = TRUE);
SB_BOTTOM/SB_RIGHT:滚动到底端(右端) SB_TOP/SB_LEFT:滚动到顶端(左端) SB_LINEDOWN/SB_LINERIGHT:向下(向右)滚动一行(列) SB_LINEUP/SB_LINELEFT:向上(向左)滚动一行(列) SB_PAGEDOWN/SB_PAGERIGHT:向下(向右)滚动一页 SB_PAGEUP/SB_PAGELEFT:向上(向左)滚动一页 SB_THUMBPOSITION:滚动到指定位置 SB_THUMBTRACK:滚动框被拖动。可利用该消息来跟踪对滚动框的拖动 SB_ENDSCROLL:滚动结束
// 滚动框的位置,当fMask 中包含SIF_POS 有效
8.
int nTrackPos;
// 滚动时滚动框的位置,当fMask 中包含SIF_TRACKP
VB控件大全属性详解 水平滚动条
作者:杜 勇
属性
说明
(Name)
控件对象的名称
CauseValidation
该控件获得焦点时,失去焦点的控件的Validate事件是否发生。取值为:
True 发生
获得或设置与对象相关联的上下文号
Width
设置该对象的宽度
False 不发生
DragIcon
该对象在拖动过程中鼠标的图标
DragMode
该对象的拖动模式,取值为:
0 Manual(手动)
1 Automatic(自动)
Enabled
用于设定是或对事件产生响应,取值为:
True 可用
False 不可用,在执行程序时,该对象用灰色显示,并且不响应任何事件
Height
MousePointer=99时,设定一个自定义的鼠标图标
MousePointer
RightToLeft
文本书写是否自左向右。取值为:
True
False 自右向左
SmallChange
用于设置单击滚动条两端箭头时,每单击一次滚动条移动的数量。
TabIndex
获得或设置此对象在父窗体的编号(父窗体中对象响应Tab键的顺序)
TabStop
设置是否可以用"Tab"键选取此对象。取值为:
True 可以
False 不可以
Tag
存储程序所需的附加数据
Top
距窗体顶部边界的距离
Value
该属性值对应于滚动框在滚动条中的相应位置,是一个整数。
滚动条的使用(一)学案
滚动条的使用(一)学案【任务一】 1.参照图1设计窗体并修改控件对象的属性图12.操作快的同学先学习“美化界面”视频,并调整自己窗体界面中控件的整齐规范。
******************************************************************** 【任务2】1.自学文本框、水平滚动条、垂直滚动条控件及其常用属性。
Text 表示文本框中的内容2.在任务1的基础上操作如下习题:(1)将文本框内容清空;(2)将垂直滚动条的最小值设为5,最大值设为100,当前值设为36;(3)将调色板中三个水平滚动条分别设置为:最小值为0,最大值为255,当前值为0。
********************************************************************【任务3】编写代码,让程序实现以下功能:1.通过改变垂直滚动条活动滑块的位置,调整文本框中文字的字号,并将其当前字号显示在垂直滚动条下方的标签中;2.通过改变调色板中水平滚动条活动滑块的位置,调整文本框的背景颜色。
********************************************************************【任务4】做完的同学将自己的窗体界面进行美化,如字体调整,控件对象对齐及控件大小调整等。
********************************************************************附:1.滚动条的Change事件:当改变活动滑块的位置时,就会触发其Change 事件,Change事件用来获取滚动条当前的值,即Value。
2.形如“对象.属性=值”的语句,被称为赋值语句,通过它可以改变对象的属性。
值可以是数字、字符串,或其他语句的运行结果等。
3. “&”:连接运算符,用于强制将两个表达式作为字符串连接,起到连接作用。
一种美化控件滚动条(ScrollBar)的方法-VC知识库文章
一种美化控件滚动条(ScrollBar)的方法-VC知识库文章一种美化控件滚动条(ScrollBar)的方法作者:Nobita下载源代码摘要:本文采用“遮挡”方法对MFC控件中的滚动条(ScrollBar)进行了美化工作,即保留了滚动条的功能,又美化了界面关键字:滚动条(ScrollBar)一、说明我们大家对MFC控件本身的美化工作都比较熟悉了,这方面的文章也是比较多的。
但是对于控件中的滚动条美化,相关资料却比较少。
已有的实现采用的是禁用控件的滚动条,然后在原有的位置上重新绘制滚动条,为了实现滚动条的功能,需要在代码中进行一些较复杂的计算。
本文采用的“遮挡”方法只是单纯的对滚动条界面进行美化,而功能则保持原有的实现。
二、原理一个人要想不被人认出,除了整容还有什么办法?还可以采用戴面具挡脸的方法。
一般我们对MFC控件进行美化都是对比如WM_CTLCOLOR、WM_DRAWITEM之类的消息进行处理,这也相当于“整容”了。
滚动条只是作为控件的一部分没有相应的消息可以重写,所以本文设想做一个“面具”来遮挡滚动条,这样即可以保留滚动条的原有功能不变,又看到一个漂亮的“面具”。
三、实现“遮挡”方法的原理很简单,要想实现这个方法需要解决以下几个问题:1.“面具”的材料是什么?要想把一个控件中的滚动条挡住又不影响功能的使用,那就需要一个可以穿透消息的东西。
很简单,立刻想到了静态文本控件(CStatic)。
2.“面具”的形状是什么样的?Windows API函数:BOOL GetScrollBarInfo(HWND hwnd, LONG idObject, PSCROLLBARINFO psbi);参数psbi指向的SCROLLBARINFO结构体包含有具体的大小。
3.“面具”如何一直挂在滚动条上?这个问题是关键所在,不解决它一切免谈。
首先要让控件绘制时不去绘制滚动条的部分,这可以通过给控件设置WS_CLIPSIBLINGS属性实现。
《第一单元 Visual Basic初步 第9课 使用滚动条控件 制作一个数值显示器》作业设计方案-
《制作一个数值显示器》作业设计方案(第一课时)一、作业目标本次作业旨在帮助学生理解和掌握数值显示器的制作原理,熟悉相关工具和软件,通过实践操作,掌握基本的数值显示器制作技能。
二、作业内容1. 任务一:了解数值显示器的基本原理。
学生需要阅读教材相关章节,理解数值显示器的工作原理,并能够用自己的语言进行描述。
2. 任务二:使用绘图软件设计数值显示器。
学生需要使用所学的绘图软件(如Microsoft Visio,或者类似的软件),设计一个简单的数值显示器,包括显示器的外观、颜色、大小等。
要求设计合理,符合实际。
3. 任务三:实践制作数值显示器。
学生需要使用提供的材料(如纸板、LED灯、电线等),按照设计图纸,动手制作一个简单的数值显示器。
要求能够正确使用工具和材料,制作过程规范。
三、作业要求1. 每个学生需独立完成所有任务,不得抄袭或他人协助。
2. 作业完成后,学生需提交三项任务的完成情况报告,报告中需详细说明每个任务的完成过程和遇到的问题及解决方法。
3. 报告应以电子版形式提交,格式不限,但要保证清晰易读。
四、作业评价1. 评价标准:根据学生提交的报告,结合任务完成情况,对学生的学习情况进行综合评价。
2. 评价方式:教师评价与学生互评相结合。
教师评价主要针对学生报告的完整性和准确性,学生互评主要针对学生的实践操作能力和解决问题的能力。
3. 作业评价结果将作为平时成绩的一部分,以鼓励学生在平时认真学习和实践操作。
五、作业反馈1. 学生作业中存在的问题和建议,将及时反馈给教师,以便教师对教学内容和方法进行改进。
2. 学生可通过教学平台或其他途径与教师进行沟通,以便及时解决问题,提高学习效果。
以上就是关于初中信息技术课程《制作一个数值显示器》作业设计方案(第一课时)的全文内容,希望能对同学们有所帮助。
通过本次作业,希望同学们能够掌握数值显示器的制作原理和技能,为后续学习打下坚实的基础。
作业设计方案(第二课时)一、作业目标1. 巩固学生对数值显示器的理解,加深对数字电路和程序设计的基本认识。
前端开发实训案例制作网页滚动条样式定制
前端开发实训案例制作网页滚动条样式定制在前端开发中,网页滚动条是一个常见的组件,它为用户提供了方便的页面滚动功能。
然而,浏览器默认的滚动条样式可能并不符合设计需求,因此,对滚动条样式进行个性化定制成为了前端开发的常见任务之一。
本文将介绍一种实训案例,帮助读者了解如何制作并定制网页滚动条样式。
一、准备工作在开始制作网页滚动条样式之前,我们需要准备一些基本的工作环境和素材。
首先,确保我们拥有一个文本编辑器和浏览器进行代码测试和预览。
其次,确定我们需要使用的图像资源,例如滚动条的箭头按钮和滑块等,可以通过各种设计工具进行绘制或者从免费图片库中获取。
最后,准备一个基本的HTML文件作为我们的实验平台。
二、HTML结构与CSS基本样式在HTML文件中,我们需要定义一个具有内容溢出的容器,并使用CSS样式将其设置为可以滚动。
具体步骤如下:1. 创建一个`<div>`元素,并设置一个合适的`id`作为标识符,例如`id="scroll-container"`;2. 在该`<div>`元素内添加一些文本内容,使其超过容器的高度,从而触发滚动条的显示;3. 使用CSS样式为容器设置固定的宽度和高度,例如`width: 500px; height: 300px;`;4. 通过`overflow`属性将容器设置为可以滚动,例如`overflow: auto;`。
实际代码如下所示:```html<!DOCTYPE html><html><head><title>网页滚动条样式定制</title><style>#scroll-container {width: 500px;height: 300px;overflow: auto;}</style></head><body><div id="scroll-container"><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed sagittis, diam quis lobortis ultrices, lectus massa ultricies risus, nec ultrices risus dui vel erat. Mauris tincidunt, erat et molestie pulvinar, lorem odio hendrerit nulla, ut pulvinar eros purus a metus. Sed lacinia lacinia mauris, eu fringilla ipsum pulvinar at. Vivamus mi enim, mattis sed iaculis nec, finibus vehicula ligula. Duis efficitur urna et turpis efficitur, eu ultricies velit efficitur. Donec blandit nunc ac est vestibulum, id pellentesque turpis efficitur. Vivamus in urna pretium, hendrerit neque vitae, efficitur tellus. Praesent efficitur pharetra ex. Nunc sit amet nunc consectetur, feugiat sapien vestibulum, condimentum ante. Ut dapibus commodo consectetur. Aliquam luctus bibendum rutrum. Mauris eget pellentesque purus.</p></div></body></html>```三、定制滚动条样式在了解了基本的HTML结构和CSS样式之后,我们可以开始定制滚动条的样式了。
VS2010-MFC-ListControl控件讲解
CListCtrl 详解获取列数获取总行数修改某行的数值1.获取CListCtrl 列数//m_List是一个CListCtrlCHeaderCtrl* pHeaderCtrl = m_List.GetHeaderCtrl();if(pHeaderCtrl){int n = pHeaderCtrl-> GetItemCount();}2.获取选择的行数void CInfoDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult){// TODO: Add your control notification handler code hereNMLISTVIEW* pList = (NMLISTVIEW*)pNMHDR;CString str;// 获取总行数int nItem=m_cListCtrl.GetItemCount();// 获取总列数CHeaderCtrl* pHeaderCtrl = m_cListCtrl.GetHeaderCtrl();if(pHeaderCtrl){int n = pHeaderCtrl-> GetItemCount();以下未经说明,listctrl默认view 风格为report-------------------------------------------------------------------------------1. CListCtrl 风格LVS_ICON: 为每个item显示大图标LVS_SMALLICON: 为每个item显示小图标LVS_LIST: 显示一列带有小图标的itemLVS_REPORT: 显示item详细资料直观的理解:windows资源管理器,"查看"标签下的"大图标,小图标,列表,详细资料--------------------------------------------------------------------------------2. 设置listctrl 风格及扩展风格LONG lStyle;lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口stylelStyle &= ~LVS_TYPEMASK; //清除显示方式位lStyle |= LVS_REPORT; //设置styleSetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle);//设置styleDWORD dwStyle = m_list.GetExtendedStyle();dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)dwStyle |= LVS_EX_CHECKBOXES;//item前生成checkbox控件m_list.SetExtendedStyle(dwStyle); //设置扩展风格注:listview的style请查阅msdn/library/default.asp?url=/library/en-us/wceshellui5/html/wce50lrflistvie wstyles.asp--------------------------------------------------------------------------------3. 插入数据m_list.InsertColumn( 0, "ID", LVCFMT_LEFT, 40 );//插入列m_list.InsertColumn( 1, "NAME", LVCFMT_LEFT, 50 );//新插入的在上面int nRow = m_list.InsertItem(0, "11");// 插入行m_list.SetItemText(nRow, 1, "jacky");//设置其它列数据//新插入的数据在下面int nIndex = m_list.GetItemCount();LV_ITEM lvItem;lvItem.mask = LVIF_TEXT ;lvItem.iItem = nIndex; //行数lvItem.iSubItem = 0;lvItem.pszText = (char*)(LPCTSTR)strCount; //第一列//在最后一行插入记录值.m_list.InsertItem(&lvItem);//插入其它列m_list.SetItemText(nIndex,1,strLat);--------------------------------------------------------------------------------4. 一直选中item选中style中的Show selection always,或者在上面第2点中设置LVS_SHOWSELALWAYS --------------------------------------------------------------------------------5. 选中和取消选中一行int nIndex = 0;//选中m_list.SetItemState(nIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);//取消选中m_list.SetItemState(nIndex, 0, LVIS_SELECTED|LVIS_FOCUSED);--------------------------------------------------------------------------------6. 得到listctrl中所有行的checkbox的状态m_list.SetExtendedStyle(LVS_EX_CHECKBOXES);CString str;for(int i=0; i<m_list.GetItemCount(); i++){if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED || m_list.GetCheck(i)){str.Format(_T("第%d行的checkbox为选中状态"), i);AfxMessageBox(str);}}--------------------------------------------------------------------------------7. 得到listctrl中所有选中行的序号方法一:CString str;for(int i=0; i<m_list.GetItemCount(); i++){if( m_list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED ){str.Format(_T("选中了第%d行"), i);AfxMessageBox(str);}}方法二:POSITION pos = m_list.GetFirstSelectedItemPosition();if (pos == NULL)TRACE0("No items were selected!\n");Else{while (pos){int nItem = m_list.GetNextSelectedItem(pos);TRACE1("Item %d was selected!\n", nItem);// you could do your own processing on nItem here}}--------------------------------------------------------------------------------8. 得到item的信息TCHAR szBuf[1024];LVITEM lvi;lvi.iItem = nItemIndex;lvi.iSubItem = 0;lvi.mask = LVIF_TEXT;lvi.pszText = szBuf;hTextMax = 1024;m_list.GetItem(&lvi);关于得到设置item的状态,还可以参考msdn文章Q173242: Use Masks to Set/Get Item States in ClistCtrl /kb/173242/en-us--------------------------------------------------------------------------------9. 得到listctrl的所有列的header字符串内容LVCOLUMN lvcol;char str[256];int nColNum;CString strColumnName[4];//假如有4列nColNum = 0;lvcol.mask = LVCF_TEXT;lvcol.pszText = str;hTextMax = 256;while(m_list.GetColumn(nColNum, &lvcol)){strColumnName[nColNum] = lvcol.pszText;nColNum++;}--------------------------------------------------------------------------------10. 使listctrl中一项可见,即滚动滚动条m_list.EnsureVisible(i, FALSE);--------------------------------------------------------------------------------11. 得到listctrl列数int nHeadNum = m_list.GetHeaderCtrl()->GetItemCount();--------------------------------------------------------------------------------12. 删除所有列方法一:while ( m_list.DeleteColumn (0))因为你删除了第一列后,后面的列会依次向上移动。
vb滚动条教学设计说课材料
v b滚动条教学设计《vb滚动条》教学设计收集于网络,如有侵权请联系管理员删除收集于网络,如有侵权请联系管理员删除3、SmallChange(小改变)属性:当用户单击滚动条左右边上的箭头时,滚动条控件Value 值的改变量就是 SmallChange,如图4、LargeChange(大改变)属性:单击滚动条中滚动框前面或后面的部位时,引发Value 值按 LargeChange 设定的数值进行改变。
如图学生听讲掌握知识内容学生完成《制作显示数据》的案例基础教学,全体同学都要掌握案例教学可以让学生更明确所学何用。
增强学生动手操作能力体现分层教收集于网络,如有侵权请联系管理员删除二、滚动条控件的事件:与滚动条控件相关的事件主要是 Scroll 与Change ,当在滚动条内拖动滚动框时会触发 Scroll 事件(但要注意,单击滚动箭头或滚动条时不发生Scroll 事件),滚动框发生位置改变后则会触发Change 事件。
Scroll 事件用来跟踪滚动条中的动态变化,Change 事件则用来得到滚动条最后的值。
三、编写稻草人换头的颜色案例讲解RGB色彩模式合成颜色的原理。
RGB色彩模式的取值范围是0~255,我们把三个滚动条的值分别赋给RGB函数的3个参数,就可以得到各种颜色。
温柔提醒:使用RGB函数调配颜色时,每个参数的最大值为255.MAX属性值的作用是限定Value 的最大值。
所以,把滚动条的MAX 属性值设为255.Private Sub hscroll1_change()Shape1.FillColor = RGB(HScroll1.Value,布置学生完成案例二同学可以互相询问以及探讨举一反三为迅速完成的同学增加的案例学让不同程度的学生都得以最大限度的锻炼和提高培养学生互相帮助,自主学习和探究式学习的能力,学会学以致用。
收集于网络,如有侵权请联系管理员删除收集于网络,如有侵权请联系管理员删除。
VS2010 C++编码进度条
Vc++中MFC如何写进度条步骤1.创建一个基于对话框的应用程序。
工程名为Progress步骤2.从CProgressCtrl类中派生一个子类CTextProgress。
步骤3.在对话框中添加一个进度条控件,设置属性的Border和Smooth为True。
步骤4进度条空间关联一个变量m_Progress,类型是CTextProgress。
步骤5.向CTextProgress类中添加成员变量。
代码如下:COLORREF m_crText;COLORREF m_crProgress;COLORREF m_crBlank;步骤6.在构造函数中为成员变量赋值:CTextProgress::CTextProgress(void){m_crText = RGB(0,255,0);m_crProgress = RGB(255,255,255);m_crBlank = RGB(0,0,255);}步骤7.处理进度条的WM_PAINT消息,并在其中编写代码:void CTextProgress::OnPaint(){PAINTSTRUCT ps;CDC* pDC = BeginPaint(&ps);int nPos = GetPos();CRect clientRC;GetClientRect(clientRC);pDC->SetBkMode(TRANSPARENT);int nMin, nMax;GetRange(nMin, nMax);double dFraction = (double)clientRC.Width() / (nMax-nMin);int nLeft = nPos * dFraction;CRect leftRC = clientRC;leftRC.right = nLeft;CRect rightRC = clientRC;rightRC.left = nLeft;for(int m=255;m>0;m--){int x,y;x = leftRC.Width() * m / 255;pDC->FillRect(CRect(0,0,x,leftRC.Height()),&CBrush(RGB(255,m,0)));}pDC->FillRect(rightRC, &CBrush(RGB(255, 255, 255)));ReleaseDC(pDC);EndPaint(&ps);}步骤8.这个时候执行下看进度条没有动,需要设置一个定时器。
滚动条样式示例
滚动条样式示例摘要:1.滚动条的概念与作用2.滚动条的常见类型3.滚动条的设计原则4.滚动条的实现方法5.滚动条的实用案例正文:滚动条是一种在有限空间内展示大量信息的交互控件。
它在网页、软件界面等场景中广泛应用,为用户提供方便的查看和操作长篇内容的方式。
本文将介绍滚动条的类型、设计原则和实现方法,并通过实用案例进行说明。
一、滚动条的概念与作用滚动条是一种用于在垂直或水平方向上滚动查看内容的控件。
它通常由一个滚动框、滚动轴和滚动按钮组成。
用户可以通过滚动轴上的滚动按钮或者鼠标滚轮来控制滚动条的滚动。
滚动条的作用是在有限的空间内展示更多内容,提高用户查看和操作的效率。
二、滚动条的常见类型1.垂直滚动条:在网页中常见,主要用于展示文本、图片等纵向排列的内容。
2.水平滚动条:在软件界面中常见,主要用于展示横向排列的内容,如菜单、工具栏等。
3.轨道式滚动条:一种现代化的滚动条类型,通过触摸滑动来控制滚动。
4.无穷大滚动:一种无极滚动的方式,当内容超过容器尺寸时,会自动加载更多内容。
三、滚动条的设计原则1.易用性:滚动条应具有清晰的滚动指示器和合适的滚动速度,方便用户操作。
2.美观性:滚动条的外观应与整体界面风格保持一致,提高视觉效果。
3.兼容性:滚动条应适应不同设备和浏览器,确保跨平台使用。
4.用户体验:在滚动条上添加一些交互效果,如滚动动画、悬停提示等,提升用户体验。
四、滚动条的实现方法1.使用CSS实现滚动条:通过CSS的`overflow`、`width`、`height`等属性来设置滚动条的样式。
2.使用JavaScript库:如jQuery、React等,通过引入相关库文件,快速搭建滚动条功能。
3.原生JavaScript实现:通过编写原生JavaScript代码,模拟滚动条的滚动效果。
五、滚动条的实用案例1.网页长篇文本展示:在网页中使用垂直滚动条,让用户在有限的空间内查看长篇文本内容。
2.图片画廊:使用水平滚动条展示多张图片,提高图片浏览效率。
滚 动 条_Visual Basic程序设计_[共2页]
194例7.8 在窗体中显示各种图形和线条。
在窗体中放7个直线控件和6个形状控件。
编写事件过程如下:Private Sub Form_Click()Line1.BorderStyle = 0Line2.BorderStyle = 1Line3.BorderStyle = 2Line4.BorderStyle = 3Line5.BorderStyle = 4Line6.BorderStyle = 5Line7.BorderStyle = 6Shape1.Shape = 0Shape2.Shape = 1Shape3.Shape = 2Shape4.Shape = 3Shape5.Shape = 4Shape6.Shape = 5Shape1.FillStyle = 2Shape2.FillStyle = 3Shape3.FillStyle = 4Shape4.FillStyle = 5Shape5.FillStyle = 6Shape6.FillStyle = 7End Sub程序运行后,单击窗体,将显示不同形状的直线和图形。
程序运行结果如图7.10所示。
图7.10 直线和形状应用举例7.3 滚 动 条滚动条是Windows应用程序设计中常用的控件,可用来改变某个控件的显示范围,也可用来设置数值的大小取值。
滚动条有垂直和水平之分,除方向不同外,其结构和操作均相同。
1.滚动条的结构滚动条由三部分组成:两个滚动箭头和一个滚动框,如图7.11所示。
2.滚动条的属性滚动条除了具备控件的一些标准属性(Height,Width,图7.11 滚动条的结构。
c 控制台滚动条事件
c 控制台滚动条事件C语言是一种广泛应用于系统编程和嵌入式开发领域的编程语言。
在C语言中,控制台滚动条事件是一种常见的交互方式,它允许用户通过滚动条来操作程序的输出内容。
本文将介绍C语言中控制台滚动条事件的实现原理以及如何使用它来增强程序的交互性。
我们需要了解控制台滚动条事件的实现原理。
在C语言中,控制台窗口是通过标准输入输出流来进行输入输出操作的。
标准输入流(stdin)用于接收用户的输入,而标准输出流(stdout)用于向控制台窗口输出信息。
控制台滚动条事件是通过操作控制台窗口的窗口属性来实现的。
通过设置窗口属性,可以控制控制台窗口的大小、位置、滚动条等属性。
在C语言中,我们可以使用Windows API中的相关函数来操作控制台窗口的属性。
其中,GetConsoleScreenBufferInfo函数可以获取控制台窗口的信息,SetConsoleScreenBufferSize函数可以设置控制台窗口的缓冲区大小,SetConsoleWindowInfo函数可以设置控制台窗口的大小和位置。
接下来,我们来看一下如何使用控制台滚动条事件来增强程序的交互性。
假设我们有一个程序,需要输出大量的信息,而且可能会超出控制台窗口的显示范围。
为了方便用户查看输出结果,我们可以在程序中添加控制台滚动条事件的处理逻辑。
我们需要获取控制台窗口的信息,以便确定窗口的大小和位置。
通过调用GetConsoleScreenBufferInfo函数,我们可以获取控制台窗口的缓冲区大小、窗口大小和光标位置等信息。
然后,我们可以根据窗口的大小和输出内容的长度,计算出需要设置的滚动条的最大值和页面大小。
接下来,我们需要设置控制台窗口的缓冲区大小和窗口大小。
通过调用SetConsoleScreenBufferSize函数,我们可以设置控制台窗口的缓冲区大小,以确保能够容纳所有的输出内容。
然后,我们可以调用SetConsoleWindowInfo函数,设置控制台窗口的大小和位置,以便用户可以方便地查看输出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VS2010 C++学习(1):滚动条的设计总结
学习VC++编制的滚动条程序.。
一、主要内容:
1.对话框中的滚动条设计;
2.编辑框中的滚动条设计;
3.列表框中的滚动条设计;
二、设计实现:
1、对话框中的滚动条设计;
∙在资源编辑器中,选择在属性对话框中的水平滚动和垂直滚动样式。
∙选择调整大小的边框样式,以使该对话框可调整其大小。
∙重写 WM_VSCROLL 和 WM_HSCROLL 消息处理程序。
∙重写设置滚动条区域,如果大小减小到小于原始大小的 WM_SIZE 消息处理程序。
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) 使用的函数
●SetScrollInfo(SB_HORZ, &hsi, TRUE);
●SetScrollPos(SB_HORZ,m_hScrollPos,TRUE);
●ScrollWindow(-nDelta,0);
函数原型:int SetScrollInfo(HWND hWnd,int fnBar,LPSCROLLINFO lpsi,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)
2)多行编辑框类的方法:
设置好后多行编辑框控件自动管理滚动条。
3、列表框中的滚动条设计;
1)垂直滚动条设计
只需设置属性即可:
2)水平滚动条设计
注意:需要将水平滚动条的属性设为真,否则即使调用下面的函数也不会出现水平滚动条。
通过调用SendDlgItemMessage 向对话框发送设置水平滚动条宽度信息来显示水平滚动条。
函数SendDlgItemMessage(IDC_LIST2, LB_SETHORIZONTALEXTENT, (WPARAM)s.cx, 0);
函数原型:LRESULT SendDlgItemMessage( int nID, UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );
LB_SETHORIZONTALEXTENT 为设置滚动条宽度信息。
发送消息时,wParam为滚动条的长度(以像素为单位,可通过计算得出准确的长度)。
lParam无用。
三、程序下载:
/detail/dalong10/5366011。