面向对象与可视化程序设计第13章_第1页
面向对象与可视化程序设计第13章_第2页
面向对象与可视化程序设计第13章_第3页
面向对象与可视化程序设计第13章_第4页
面向对象与可视化程序设计第13章_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020/5/3,1,面向对象与可视化程序设计-VisualC+编程主讲教师:唐龙教授(计算机科学与技术系)黄维通博士(计算机与信息管理中心)清华大学2001年2月,2020/5/3,2,第十三章滚动条类及其应用,2020/5/3,3,内容提要,滚动条类简介滚动条类控件的应用,2020/5/3,4,13.1.滚动条类简介,1.滚动条和滚动条类,滚动条是可视化的交互式控件,它包括一个滑块、滚动条的两端的按钮等。两种不同的滚动条滚动条控件由用户创建、管理和释放的属于窗口的滚动条由该窗口创建、管理和释放的。作为任何一个窗口的子控件,滚动条可以通过通知代码来创建,但也可以用对话框资源模板来创建。,滚动条类Cscrollbar是由CWnd类直接派生的。,2.CScrollBar类的创建与初始化,关键字new和构造函数CScrollBar:CScrollBar()为一个ScrollBar对象分配一个实例CScrollBar:pMyScroll=newCScrollBar;初始化CScrollBar对象,将一个Windows滚动条赋予它,并用CScroll:Create()方法设置参数和样式BOOLCreate(DWORDdwStyle,/滚动条窗口的样式constRECT/父窗口的标识,3.滚动条的设置,调用CScrollBar:SetScrollRange()设置滚动条控件范围。例如,设置滚动范围为-100到100的垂直滚动条pMyScroll-SetScrollRange(SB_VERT,-100,100);调用SetScrollPos()设置滚动块当前位置。例如,滚动快的位置在-100到100的中间,即为0的位置pMyScroller-SetScrollPos(0);,2020/5/3,9,13.1.滚动条类的应用技术,例13-1带滚动条类的应用程序,其界面标题为ApplicationofScrollBar,滚动条的滚动范围设为0到20,当前值为10,右编辑框显示当前值。四个按键控制滚动条动作:单击Up按钮,滚动块移到最上边,编辑框的数字变为0单击Down按钮,滚动块移到最下边,编辑框的数字变为20;单击Reset按钮,滚动块移到中间,编辑框的数字变为10单击Exit按钮,退出应用程序。,单击Up,滚动块移到最上边,单击Down,滚动块移到最下边,单击Exit,退出应用程序,单击Reset,滚动块移到中间,编辑框的数字为10,单击上/下的箭头,滚动块向上/向下移动一格,编辑框中的数字加1或减1,拖动滚动块。编辑框中的数字随之变化,单击滚动块与箭头之间的区域。滚动块上移或下移三格,编辑框中的数字加3或减3,编辑框显示当前滚动块位置,应用程序的可视化编程,应用程序的代码编程,(1)给滚动条连接变量,ID变量名类别类型IDC_SCROLLBARm_ScrollbarControlCscrollbarIDC_EDITlm_EditControlCEdit,BOOLCSCROLLBARDlg:OnInitDialog()CDialog:OnInitDialog();ASSERT(IDM_ABOUTBOX,(2)初始化滚动条,/为该对话框设置图标,当该应用程序的主窗口不是一个对话框时,程序将自动设置图标SetIcon(m_hIcon,TRUE);/SetbigiconSetIcon(m_hIcon,FALSE);/Setsmalliconm_Scrollbar.SetScrollRange(0,20);m_Scrollbar.SetScrollPos(10);charsPos10;itoa(m_Scrollbar.GetScrollPos(),sPos,10);/数值转成字符m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(sPos);UpdateData(FALSE);returnTRUE;/returnTRUEunlessyousetthefocustoacontrol,(3)给滚动条消息添加代码,voidCSCROLLBARDlg:OnVScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar)charsPos10;intiNowPos;switch(nSBCode)if(pScrollBar=,caseSB_LINEUP:/单击滚动条向上的箭头iNowPos=m_Scrollbar.GetScrollPos();iNowPos=iNowPos-1;if(iNowPos20)iNowPos=20;m_Scrollbar.SetScrollPos(iNowPos);itoa(m_Scrollbar.GetScrollPos(),sPos,10);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(sPos);break;,caseSB_PAGEUP:/单击滚动条上箭头与滚动块之间的区域iNowPos=m_Scrollbar.GetScrollPos();iNowPos=iNowPos-3;if(iNowPos0)iNowPos=0;m_Scrollbar.SetScrollPos(iNowPos);itoa(m_Scrollbar.GetScrollPos(),sPos,10);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(sPos);break;CDialog:OnVScroll(nSBCode,nPos,pScrollBar);,(4)给Exit按钮连接代码,voidCSELECTBOXDlg:OnExitButton()OnOK();,(5)给Up按钮连接代码,voidCSCROLLBARDlg:OnUpButton()m_Scrollbar.SetScrollPos(0);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(0);,(6)给Down按钮添加代码,voidCSCROLLBARDlg:OnDownButton()m_Scrollbar.SetScrollPos(20);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(20);,(7)给Reset按钮添加代码,voidCSCROLLBARDlg:OnResetButton()m_Scrollbar.SetScrollPos(10);m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(10);,(8)将编辑框设置为只读的,在此

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论