欢迎来到天天文库
浏览记录
ID:27066013
大小:379.82 KB
页数:22页
时间:2018-11-30
《制作含滚动条的应用程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第13章制作含滚动条的应用程序滚动条是一个交互式的、高度可视化的控件,它包括一个滑块、滚动条的两端的按钮等。滚动条控件与属于窗口的滚动条是不一样的处于窗口的滚动条是由该窗口创建、管理和释放的滚动条控件是由用户创建、管理和释放的13.1滚动条类简介作为任何一个窗口的子控件,滚动条可以通过通知代码来创建,但也可以用对话框资源模板来创建。创建与初始化滚动条类创建CScrollBar对象的一般步骤(1)用C++关键字new和构造函数CScrollBar::CScrollBar()为一个ScrollBar对象分配一个实例(2)初始化CScrollBar对象,将一个Windows滚
2、动条赋予它,并用CScroll::Create()方法设置参数和样式分配一个滚动条控件对象并返回指向该对象的指针CScrollBar::pMyScroll=newCScrollBar调用CScrollBar::Create()方法初始化指针BOOLCreate(DWORDdwStyle,constRECT&rect,CWnd*pParentWnd,UINTnID);滚动条窗口的样式表示控件的大小和位置指向控件所属窗口的指针父窗口与滚动条通信的标识在设置滚动条控件时,要通过CScrollBar::SetScrollRange()设置其范围。例如,设置滚动范围为-100到1
3、00的垂直滚动条:pMyScroll->SetScrollRange(SB_VERT,-100,100);在设置了范围后,还要通过SetScrollPos()设置滚动块当前位置。例如,滚动块的位置在-100到100的中间,即为0的位置:pMyScroller->SetScrollPos(0);标题为ApplicationofScrollBar滚动条的滚动范围设为0到20单击滚动块与箭头之间的区域。滚动块上移或下移三格,编辑框中的数字加3或减3单击向上或向下的箭头,滚动块向上或向下移动一格,编辑框中的数字加1或减1按住滚动块上下拖动,编辑框中的数字随之变化当前值为10单击
4、Up按钮,滚动块移到最上边,编辑框的数字变为0单击Down按钮,滚动块移到最下边,编辑框的数字变为20单击Reset按钮,滚动块移到中间,编辑框的数字变为10单击Exit按钮,退出应用程序13.2滚动条类编程实例1.应用程序的可视化编程部分2.应用程序的代码编程部分(1)给滚动条连接变量ID变量名类别类型IDC_SCROLLBARm_ScrollbarControlCscrollbarIDC_EDITlm_EditControlCEditBOOLCSCROLLBARDlg::OnInitDialog(){CDialog::OnInitDialog();//将“About
5、...”菜单项加入到系统菜单中。//IDM_ABOUTBOX必须在系统命令范围内。ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX<0xF000);CMenu*pSysMenu=GetSystemMenu(FALSE);if(pSysMenu!=NULL){CStringstrAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if(!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR)
6、;pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);}}(2)初始化滚动条//为该对话框设置图标,当该应用程序的主窗口不是一个对话框时,程序将自动设置图标SetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);//Setsmalliconm_Scrollbar.SetScrollRange(0,20);m_Scrollbar.SetScrollPos(10);charsPos[10];itoa(m_Scrollbar.GetScrollPos(),
7、sPos,10);//数值转成字符m_Edit.SetSel(0,-1);m_Edit.ReplaceSel(sPos);UpdateData(FALSE);returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}(3)给滚动条消息添加代码voidCSCROLLBARDlg::OnVScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar){charsPos[10];intiNowPos;switch(nSBCode){if(pScrollBar
此文档下载收益归作者所有