版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、按钮滚动条第1页,共37页,2022年,5月20日,14点45分,星期三一、概述控件接受的消息主要有单击、双击和字符输入等 控件是Windows 图形用户界面的主要组成部分之一,用户通过操作控件对象完成与应用程序之间的交互。控件的使用集中体现了Windows 系统面向对象的特点。控件工具箱第2页,共37页,2022年,5月20日,14点45分,星期三查看应用程序的常用视图查看文件查看类查看对话框第3页,共37页,2022年,5月20日,14点45分,星期三在应用程序(基于对话框)中添加控件1、创建项目并生成对话框项目名:T 项目类型:MFC模板:MFC应用程序应用程序类型:基于对话框生成类:C
2、TApp, CTDlg对话框ID:IDD_ T _DIALOG第4页,共37页,2022年,5月20日,14点45分,星期三2、使用工具箱向对话框添加控件3、使用属性对话框设置控件属性 第5页,共37页,2022年,5月20日,14点45分,星期三4、为控件添加消息映射:编写成员函数类名控件对象名消息映射函数第6页,共37页,2022年,5月20日,14点45分,星期三5、为控件定义标识符:变量与控件ID绑定,实现数据交换控件ID与变量关联控件或值第7页,共37页,2022年,5月20日,14点45分,星期三二、 按钮控件1 按钮控件的实现过程 按钮控件是Windows对话框中常用的控件之一。
3、常用的按钮有命令按钮、单选按钮、复选按钮等。通过单击或双击按钮触发相应程序,实现相应功能。按钮控件的实现过程:1、使用控件工具栏创建按钮(选择类型)2、设置按钮属性(选择外观、风格等)3、编写事件触发的应用程序(相应函数)第8页,共37页,2022年,5月20日,14点45分,星期三按钮控件消息:ON_BN_CLICKEDON_BN_DBLCLICKEDON_COMMAND(双击)两个类似按钮是最常见的控件之一复选框单选按钮命令按钮常用于只有两种完全相反状态的情况下。适用于同一组属性相同的数据中选一个数据。组中按钮的顺序必须连续,用菜单Layout|TabOrder调顺序适用于消息的发送(单击
4、)第9页,共37页,2022年,5月20日,14点45分,星期三按钮控件属性按钮类型 属性 说明命令按钮 ID 标识码 Caption 标题 Disabled 已禁用(灰色)单选按钮 ID 标识码 Caption 标题 Group 多个按钮为一组 Auto 自动响应点击消息复选按钮 ID 标识码 Caption 标题 Auto 自动响应点击消息一组中只能一个按钮选Group第10页,共37页,2022年,5月20日,14点45分,星期三GetCheck( )SetCheck( )GetBitmap()SetBitmap()GetButtonStyle()SetButtonStyle()GetC
5、ursor()SetCursor()GetIcon()SetIcon()GetState()SetState()CButton类的成员函数在知道按钮ID的前提下,还可使用与按钮有关的CWnd成员函数来设置或查询按钮状态 CheckDlgButtonCheckRadioButtonGetCheckedRadioButtonIs DlgButtonCheckedGetWindowTextGetWindowTextLengthSetWindowText第11页,共37页,2022年,5月20日,14点45分,星期三 MFC提供了一个CButton的类,命令按钮、单选按钮、复选按钮都属于CButton
6、类。在对话框中,通过控件工具栏,选择不同的按钮,设置不同风格的属性,完成按钮的创建。CObjectCCmdTargetCWndCButtonCButtob类结构第12页,共37页,2022年,5月20日,14点45分,星期三2 按钮控件示例例1-P192 按钮的应用:设计一个对话框,其中的控件如图所示第13页,共37页,2022年,5月20日,14点45分,星期三主要步骤:创建基于对话框项目设置按钮的属性 IDC_BUTTON1IDC_BUTTON2IDC_RAD1IDC_RAD2IDC_RAD3IDC_RAD4IDC_CHECK1IDC_CHECK2Group属性格式|Tab键顺序设置排列顺
7、序Auto属性控件ID第14页,共37页,2022年,5月20日,14点45分,星期三3. 添加成员变量控件ID: 变量:IDC_BUTTON1 m_btn1IDC_BUTTON2 m_btn1IDC_RAD1IDC_RAD2IDC_RAD3 m_rad3IDC_RAD4 m_rad4IDC_CHECK1IDC_CHECK2 m_chk2auto风格控件不必添加成员变量第15页,共37页,2022年,5月20日,14点45分,星期三4. 添加消息映射函数控件ID: 函数:IDC_BUTTON1 OnBnClickedButton1IDC_BUTTON2 OnBnClickedButton2ID
8、C_RAD3 OnBnClickedRad3IDC_RAD4 OnBnClickedRad4 IDC_CHECK2 OnBnClickedCheck2第16页,共37页,2022年,5月20日,14点45分,星期三void CT91Dlg:OnBnClickedButton1() m_btn1.SetWindowText(“你已按下了按钮!”); /重写命令按钮1的标题void CT91Dlg:OnBnClickedButton2 m_btn2.SetWindowText(“按钮已被按下!”); /重写命令按钮2的标题void CT91Dlg:OnBnClickedCheck2() if(m_
9、chk2.GetCheck()0) /设置不Auto的复选按钮 m_chk2.SetCheck(0); /不选中 else m_chk2.SetCheck(1); /选中 第17页,共37页,2022年,5月20日,14点45分,星期三void CT91Dlg:OnBnClickedRad3()/设置不Auto的单选按钮 m_rad3.SetCheck(1);m_rad4.SetCheck(0);void CT91Dlg:OnBnClickedRad4()/设置不Auto的单选按钮 m_rad3.SetCheck(0);m_rad4.SetCheck(1);第18页,共37页,2022年,5月
10、20日,14点45分,星期三小结: 步骤 类 函数与变量创建项目并生成对话框 CT91App, CT91Dlg设置控件的属性添加成员变量 m_btn1, m_btn1, m_rad3, m_rad4, m_chk2 编写程序:添加命令按钮1代码 OnBnClickedButton1编写程序:添加命令按钮1代码 OnBnClickedButton2编写程序:添加复选按钮2代码 OnBnClickedCheck1编写程序:添加单选按钮2代码 OnBnClickedRad4编写程序:添加单选按钮2代码 OnBnClickedRad3第19页,共37页,2022年,5月20日,14点45分,星期三三、
11、滚动条控件 滚动条是一个交互式的、高度可视化的控件它包括一个滑块、滚动条的两端的按钮等。滚动条控件与属于窗口的滚动条是不一样的处于窗口的滚动条是由该窗口创建、管理和释放的滚动条控件是由用户创建、管理和释放的第20页,共37页,2022年,5月20日,14点45分,星期三1 滚动条类的结构及其方法 滚动条可以通过通知代码来创建,也可以用控件工具栏来创建第21页,共37页,2022年,5月20日,14点45分,星期三常用滚动条动作标识及其说明SB_TOP / SB_BOTTOM :滚动到滚动条最顶 / 底端SB_LINEUP / SB_LINEDOWN:向上 / 下滚动一行SB_LEFT / SB
12、_RIGHT:滚动到左 / 右边SB_LINELEFT / SB_LINERIGHT:向左 / 右滚动一行SB_PAGEUP / SB_PAGEDOWN :向上 / 下滚动一页SB_PAGELEFT / SB_PAGERIGHT :向左 / 右滚动一页SB_THUMBPOSITION:滚动框移动到新位置SB_THUMBTRACK:滚动框被拖动SB_ENDSCROLL:滚动到最终位置第22页,共37页,2022年,5月20日,14点45分,星期三2 创建与初始化滚动条类 创建CScrollBar对象的一般步骤(1) 使用控件工具栏创建一个CScrollBar对象(3) 添加滚动条消息代码( 垂直
13、滚动条:WM_VSCROLL,水平滚动条:WM_HSCROLL ) (2) 初始化CScrollBar对象,设置滚动条的滚动范围和滚动块的当前位置第23页,共37页,2022年,5月20日,14点45分,星期三在设置滚动条控件时,要通过如下方法设置其范围CScrollBar:SetScrollRange()例如,设置滚动范围为-100到100的垂直滚动条pMyScroll-SetScrollRange(SB_VERT,-100,100);通过SetScrollPos()设置滚动块当前位置例如,滚动快的位置在-100到100的中间,即为0的位置pMyScroller-SetScrollPos(0
14、);第24页,共37页,2022年,5月20日,14点45分,星期三3 滚动条类编程实例 滚动条的滚动范围设为0到20单击滚动块与箭头之间的区域。滚动块上移或下移三格,编辑框中的数字加3或减3单击向上或向下的箭头,滚动块向上或向下移动一格,编辑框中的数字加1或减1按住滚动块上下拖动。编辑框中的数字随着随之变化当前值为10单击Top按钮,滚动块移到最上边,编辑框的数字变为0单击Bottom按钮,滚动块移到最下边,编辑框的数字变为20单击Exit按钮,退出应用程序例2 P197: 滚动条的应用:设计一个对话框,其中的控件如图所示单击Reset按钮,滑块移到中间,编辑框的数字变为10第25页,共37
15、页,2022年,5月20日,14点45分,星期三(1) 应用程序的可视化编程部分1、创建项目并生成对话框项目名:T92 项目类型:MFC模板:MFC应用程序应用程序类型:基于对话框生成类:CT92App CT92Dlg对话框ID:IDD_T92_DIALOG第26页,共37页,2022年,5月20日,14点45分,星期三(2)设置对象属性并添加成员变量 对象 ID 变量名类别 类型滚动条 IDC_SCROLLBAR m_scrollbarControl CScrollbar编辑框 IDC_EDITl(只读) m_dispinfoControl CEdit对象 ID Caption Top按钮
16、IDC_BTN_TOP &TopBottom按钮 IDC_BTN_Bottom &BottomRsset按钮 IDC_BTN_Reset &ResetExit按钮 IDC_BTN_Exit &Exit第27页,共37页,2022年,5月20日,14点45分,星期三void CT92Dlg:ChangeDisplayInfo(int pos) TCHAR sPos10; _itow_s(pos,sPos,10); /TCHAR转换成int m_dispinfo.SetSel(0,-1); / 选中编辑框中文字 m_dispinfo.ReplaceSel(sPos); /替换成当前sPos值 Up
17、dateData(FALSE); /m_dispinfo变量内容显示到屏幕(3) 编写程序:添加函数“显示滚动条当前位置”选择“CT92Dlg”类 ,快捷菜单:添加 添加函数 成员函数名:ChangeDisplayInfo(int pos) 功能:将数值参数pos显示到编辑框中。编写如下代码。第28页,共37页,2022年,5月20日,14点45分,星期三BOOL CT92Dlg:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization herem_Scrollbar.SetScrollRange(0,20)
18、; /滚动范围m_Scrollbar.SetScrollPos(10); /当前位置ChangeDisplayInfo(m_Scrollbar.GetScrollPos(); return TRUE; (4) 编写程序:初始化滚动条打开“CT92Dlg”类 的源文件 T92Dlg.cpp, 成员函数:OnInitDialog()添加如下代码。第29页,共37页,2022年,5月20日,14点45分,星期三void CT92Dlg:OnVScroll() / TODO: 在此添加消息处理程序代码和/或调用默认值 int iNowPos;switch(nSBCode) if(pScrollBar=
19、&m_Scrollbar) case SB_THUMBTRACK:/拖动滑块 m_Scrollbar.SetScrollPos(nPos); ChangeDisplayInfo(m_Scrollbar.GetScrollPos();(5)编写程序:添加滚动条消息代码 选择CT92Dlg类,在属性对话框中单击消息按钮 选择消息:WM_VSCROLL,添加消息编写如下代 码。第30页,共37页,2022年,5月20日,14点45分,星期三case SB_LINEDOWN:/单击滚动条向下的箭头iNowPos=m_Scrollbar.GetScrollPos();iNowPos=iNowPos+1;
20、if(iNowPos20)iNowPos=20;m_Scrollbar.SetScrollPos(iNowPos);ChangeDisplayInfo(m_Scrollbar.GetScrollPos();break;第31页,共37页,2022年,5月20日,14点45分,星期三case SB_LINEUP:/单击滚动条向上的箭头iNowPos=m_Scrollbar.GetScrollPos();iNowPos=iNowPos-1;if(iNowPos20)iNowPos=20;m_Scrollbar.SetScrollPos(iNowPos);ChangeDisplayInfo(m_Sc
21、rollbar.GetScrollPos(); break;第33页,共37页,2022年,5月20日,14点45分,星期三case SB_PAGEUP:/单击箭头与滚块之间的区域iNowPos=m_Scrollbar.GetScrollPos();iNowPos=iNowPos-3;if(iNowPos0)iNowPos=0;m_Scrollbar.SetScrollPos(iNowPos);ChangeDisplayInfo(m_Scrollbar.GetScrollPos(); break; CDialog:OnVScroll(nSBCode, nPos, pScrollBar); 第3
22、4页,共37页,2022年,5月20日,14点45分,星期三双击“Exit”按钮,在T92Dlg.cpp文件中添加消息:BN_CLICKED的映射函数: OnBnClickedBtnExit()编写如下代 码。void CT92Dlg:OnBnClickedBtnExit()OnOK(); 双击“Top”按钮,在T92Dlg.cpp文件中添加消息:BN_CLICKED的映射函数: OnBnClickedBtnTop ()编写如下代 码。CT92Dlg:OnBnClickedBtnTop() /返回到滚动条的顶部m_Scrollbar.SetScrollPos(0); /设置滚动条当前位置 ChangeDisplayInfo(m_Scrollbar.GetScrollPos(); (6) 编写程序:添加Exit按钮代码 (7)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027届辽阳市辽阳县三上数学期末考试模拟试题含解析
- 2027届浙江省杭州市多县区三年级数学第一学期期末教学质量检测模拟试题含解析
- 2026年1月产房助产士理论考核测试卷及答案
- 三台县2027届四上数学期末调研模拟试题含解析
- 2027届邢台市临城县数学四上期末统考试题含解析
- DB32∕T 1649-2010 公路养护工程预算编制办法及定额
- 榆林市2026年高三下第一次测试生物试题含解析
- 2026中国手持式气体检测仪行业市场现状及行业分析研究报告
- 2026能源领域行业现状分析调研发展投资研究评估分析报告
- 2026瑞士钟表行业市场现状分析及高端投资规划优化研究分析报告
- 鼻部手术患者睡眠护理
- 建筑工程安全操作规程汇编
- GB/T 12221-2025金属阀门结构长度
- 洗衣工厂岗位职责及管理手册
- 钢丝网骨架复合管专项施工方案
- 老宋教开车课件
- 2025年卫生高级职称面审答辩(卫生管理)历年参考题库含答案详解
- 广元市昭化区招聘社区工作者考试真题2024
- 重庆市2025年高考真题化学试卷(含答案)
- 江苏省低空空域协同管理办法(试行)
- 麻醉应急预案及处理流程
评论
0/150
提交评论