版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十三章创建一个包含滚动条的应用程序。 滚动条是一种可以交互查看高度的控件,包含滑块、滚动条两端的按钮等。 滚动条的控件与属于该窗口的滚动条不同,位于该窗口的滚动条由该窗口创建、管理、释放,滚动条的控件由用户创建、管理、释放、13.1滚动条可以通过通知代码来创建任何窗口的子控件,也可以通过对话框资源模板来创建子控件。 创建滚动条类并初始化滚动条控件时,请在cscrollbackr :30 setscrollrange ()中设置范围。 例如,设定滚动条范围为- 100,100的垂直滚动条。 选择pmy scroll-setscrollrange (sb _ vert,- 100,100 ),设
2、定范围后,用SetScrollPos ()设定滚动块的当前位置。 例如,滚动块的位置在-100到100之间,即0的位置: pMyScroller-SetScrollPos(0);13.2滚动条类的编程例、1 .应用程序的视觉编程部、2 .应用程序的代码编程部、(1)将变量连接在滚动条上, ID变量名类型IDC _ scroll bar m _ scrollbarcontrollbackridc _ editlm _ editcontrolcedit bolcscrollbardlg 33603360 oninitdialog () cdial /在系统菜单中添加“About .”菜单项目。 /
3、IDM_ABOUTBOX必须在系统命令的范围内。 资产(IDM _ about box; (2)初始化滚动条,/设定该对话框的图标。 如果应用程序主窗口不是对话框,程序会自动设置图标SetIcon(m_hIcon,true )/setbigiconseticon (m _ hicon,false )/setsmalliconm _ 从itoa(m_Scrollbar.GetScrollPos (),sPos,10) /数值中返回字符m_Edit.SetSel(0,-1) m _ edit.replacesel (spos )更新数据(false ) return /returntrueunle
4、ssyousetthefocustoacontrol,(3)在滚动条消息中添加代码,voidccscrollbacklg :30 Ono vscroll (uintnscode,UINTnPos intiNowPos; switch (nsb代码) if (pscrollbar=、caseSB_PAGEDOWN:/滚动条下方箭头和滚动条之间的区域inowpos=m _ scroll bar.getscrollpos (); iNowPos=iNowPos 3; if(iNowPos20)iNowPos=20; m _ scroll bar.setscrollpos (inowpos ) ito
5、a (m _ scroll bar.getscrollpos (),sPos,10) m_Edit.SetSel(0,-1) m _ edit.replacesel (caseSB_PAGEUP:/滚动条上箭头和滚动条块之间的区域inowpos=m _ scroll bar.getscrollpos (); iNowPos=iNowPos-3; if(iNowPos0)iNowPos=0; m _ scroll bar.setscrollpos (inowpos ) itoa (m _ scroll bar.getscrollpos (),sPos,10) m_Edit.SetSel(0,-1
6、) m _ edit.replacesel (cdialog :3360 on vscroll (nsb code,nPos,pScrollBar ),(将代码连接到退出按钮的voidcselectboxdlg :3360 on exit button ()/在此处通知控制/代码创建完成。 (5)在up按钮上追加代码。 在此处开始创建控制通知句柄代码/代码m_Scrollbar.SetScrollPos(0); m_Edit.SetSel(0, -1) m_Edit.ReplaceSel(0) /代码创建结束,(向Down按钮添加代码,voidccscrollbacklg :30 ondown
7、button ()/todo :此处通知句柄代码m _ scrol 添加m_Edit.SetSel(0, -1) m_Edit.ReplaceSel(20 ),(向Reset按钮添加代码,voidccscrollbacklg :3360 on reset button ()/todo :此处通知句柄代码m _ scroll bar.s m_Edit.SetSel(0,-1)创建m _ edit.replacesel (10 )、图像界面,单击“开始”按钮后,依次执行各操作,在执行过的操作前标记指定,在执行中的操作前标记箭头,(1) appwizard- appwizard step1- -基于
8、诊断的- -剩馀的默认(2) 在打开对话框编辑器的属性的“开始”和“结束”下,将“确定”按钮ID更改为“ID_BEGIN”(在控制工具栏上选择Picture按钮-创建空的图像框-Insert菜单-资源琼-导入-添加BMP文件使用属性类型选择位图-接受默认ID值-在图像框中显示位图(在控制工具栏中选择列表控制按钮,然后选择列表框中的控件在其上单击鼠标右键,然后选择“Property”菜单项。 将ID更改为IDC_LISTCTRL1,然后选择Disabled选项(在控制工具栏上选择Progress按钮,以绘制进度条控件。 然后右键单击并选择“属性”菜单项。 请注意,将ID更改为IDC_PROGRE
9、SS1,并且还选择了禁用选项。 (6)Insert菜单-Resource菜单项目- -点击-Resourcetype列表框的Icon项目Import按钮-res文件夹的arrow.ico、empty.ico、finished.ico这三个文件将IDI_ICON_EMPTY变更为IDI_ICON_FINISHED, 控件连接的变量控件ID变量类型变量名称IDC _ listctrl1clistctrl1IDC _ progress1cprogressctrlm _ progress追加的变量类型变量名称HICONhIcon7在图像列表中Name7保存列表控制中的字符信息CImageListm_I
10、mageList图像列表对象intm_nCurProc的当前操作过程的编号intm_nProgress进度条的位置,ClassView卡-13_5dblg类打开iable,13_5Dlg.cpp文件,将初始化变量的代码:/初始化变量m_nCurProc=1添加到构造函数中,m_nProgress=0; /列表框操作的名称ProcName0=; procname1=checkingreparationtable; ProcName2=CheckingBootRecord; procname3=检查文件系统; procname4=检查目录; procname5=checkingecompresse
11、ddisks; ProcName6=CheckingDiskSurface; 在初始化函数OnInitDialog ()中编码: intn; m _ imagelist.create (16,16,0,7,7 )/1616 hicon0=afxgetapp ()-loadicon (idi _ icon _ arrow ); /加载图标hicon1=afxgetapp ()-loadicon (idi _ icon _ empty ) hicon2=afxgetapp ()-loadicon (idi _ icon _ empty ) hicon3=afxgetapp ()-l hicon4=
12、afxgetapp ()-loadicon (idi _ icon _ empty ) hicon5=afxgetapp ()-loadicon (idi _ icon _ empty ) hicon6=afxgetapp ()-loadicon (n7; n )在n )m_ImageList.Add(hIconn) /图像列表中添加图标/在列表控件中设置图像列表m_ListCtrl1.SetImageList(/进度条的位置; (7)点击开始按钮,按顺序执行列表框内的各个操作,可以通过设定定时器来执行该功能。 单击Ctrl W打开ClassWizard对话框,选择消息映射卡,然后映射以下消息
13、处理函数。 将以下代码添加到ID消息类型消息处理函数id _ begin bn _ clickdonbegin () cmy 13 _5DLG mm _ time ontimer () on begin ()函数中: m_nCurProc=1; m_nProgress=0; settimer (1,10,NULL) /设置计时器/更改标头的图标hicon0=afxgetapp ()-loadicon (idi _ icon _ empty )/加载图标m_ImageList.Replace(0 (替换原始图标m_ListCtrl1.DeleteItem(0从列表控件中删除项目m_ListCtr
14、l1.InsertItem(0,(lptstr ) procname 0,0 ) /列表m_ImageList.Replace(1,hicon1) m _ listctrl1. delete item (1) m _ listctrl1. insert item (1)、(lpctstr ) procname 1,1; getddlgitem (id _ begin ) -禁用启用窗口(0) /“开始”按钮,并调用函数SetTimer ()创建一个计时器,每0.01秒发送一次WM_TIMER消息。 调用函数LoadIcon ()加载空图标并调用函数Replace ()来替换图像列表标题中的图标
15、。 要更改列表控件中显示的图标,必须调用函数DeleteItem ()从列表控件中删除第0个项,然后调用函数InsertItem ()向列表控件中添加与空图标对应的项同样,您可以更改第一个项目的图标。 最后,调用函数EnableWindow ()以阻止“开始”按钮可用。下面的代码首先根据当前操作号更改进度条的位置,然后调用函数SetPos ()来设置进度条的位置。 如果是m_nProgress300,则表示当前操作完成,与上一个操作步骤一样,调用函数来指定当前操作项目的上一个图标。 然后,如果清除进度条位置,并在操作编号上加1,则需要调用函数将当前操作前的图标更改为箭头。 如果当前动作编号大于
16、6,则调用函数KillTimer ()删除计时器,最后调用函数MessgeBox ()显示消息对话框,并显示动作的结果。 将以下代码添加到OnTimer ()函数中。 m_nProgress=int(6.0/m_nCurProc ); /将m_Progress.SetPos(m_nProgress )添加到进度条位置if(m_nProgress=300)/刚完成的操作项目图标hiconm _ ncurproc=afxgetapp ()-loadico m _ imagelist.replace (m _ ncourproc,hiconm _ ncurproc ) m _ listctrl1. delete item (m _ ncurproc ) m _ listctrl1. insert item (m _ ncu m_nProgress=0; /设定进度条位置m_nCurProc设定当前操作项目的编号/正在进行的操作项目的图标hiconm _ ncurproc=afxgetapp ()-loadico
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年玉林市第一人民医院医护人员招聘考试参考题库及答案详解
- 2026年浙江省中医院医护人员招聘考试参考试题及答案详解
- 2026年广发银行(海口分行)人员招聘笔试备考试题及答案详解
- 2026年天津市中西医结合医院医护人员招聘考试参考题库及答案详解
- 2026年黄石市中心医院普爱院区医护人员招聘考试备考试题及答案详解
- 2026年中国工商银行(黑龙江分行)人员招聘考试参考题库及答案详解
- 2026年解放军第180医院医护人员招聘笔试参考试题及答案详解
- 2025年中国人民解放军第44医院医护人员招聘考试试题附答案详解
- 2026年南平市第一医院医护人员招聘考试参考题库及答案详解
- 2026年榆林市中医院医护人员招聘考试参考试题及答案详解
- 爆破安全教育培训内容课件
- 2024-2025学年山东省青岛市青岛版六年级下册期末质量抽测数学试卷(无答案)
- 2025年安徽省产前筛查诊断卫生专业技术人员资格考试历年参考题库含答案详解(5套)
- 消防训练基地建设标准
- DB37-T4827-2025 水利工程运行管理标牌设置指南
- GB/Z 44267-2024自动化系统与集成工业数据数字孪生的可视化元素
- (正式版)HGT 3873-2024 增塑剂 己二酸二(2-乙基己基)酯(DOA)
- 《首件检验培训教材》课件
- 2022年吉林大学软件工程专业《计算机网络》科目期末试卷B(有答案)
- 施工现场消防安全培训课件讲义
- 项贤明主编马工程教材《教育学原理》第九章教师与学生
评论
0/150
提交评论