版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、教学重点1、对话框基本概念 对话框设计、对话框初始化、数据交换机制2、标准控件编程 按钮、滚动条、列表框、编辑框、组合框等3、定时器消息编程 WM_TIMER第6章基于对话框的应用程序 6.1 概述基于对话框的应用程序用CDialog派生类对象作为应用程序的主窗口。基于对话框的应用程序框架可由Visual C+的应用向导自动生成,非常方便。对话框(Dialog)实际上也是一个窗口。在MFC中,对话框的功能被封装在CDialog类中,CDialog类是CWnd类的派生类 。第6章基于对话框的应用程序 6.1 概述从MFC编程的角度来看,一个对话框由两部分组成:1、对话框模板资源:对话框模板用于指
2、定对话框的形状、所用控件及其分布。2、对话框类:对话框类用来实现对话框的功能。第6章基于对话框的应用程序 6.1 概述对话框设计:对话框模板设计和对话框类设计1、向项目中添加对话框模板资源;2、编辑对话框模板资源,加入所需的控件;3、从CDialog类派生对话框类,加入与各控件对应的数据成员;4、在消息响应函数中添加对话框对象的应用代码。第6章基于对话框的应用程序 6.1 概述对话框的初始化1、构造函数:针对对话框的数据成员进行初始化。2、OnInitDialog:WM_INITDIALOG消息处理函数。在OnInitDialog()函数中做一些影响对话框外观的初始化工作。第6章基于对话框的应
3、用程序 6.1 概述对话框的数据交换机制(DDX)控件与用户的数据交流过程:1、在对话框类中加入与控件对应的数据成员;2、通过数据交换(DDX)确定其与控件的数据交换关系。MFC提供了CDataExchange类来实现对话框类与控件之间的数据交换(DDX)。第6章基于对话框的应用程序 6.1 概述对话框的数据交换机制(DDX)数据交换机制通过CDialog:DoDataExchange()函数来完成,其原型为:virtual void DoDataExchange ( CDataExchange* pDX );其中参数pDX为指向CDataExchange类对象的指针,框架使用该对象建立数据交
4、换内容。第6章基于对话框的应用程序 6.1 概述对话框的数据交换机制(DDX)数据交换函数void DDX_Text ( CDataExchange* pDX, int nIDC, float& value );其中:参数pDX:指向CDataExchange对象的指针;参数nIDC:对话框对象中的编辑控件的标识符;参数value:对话框中的数据成员的引用。第6章基于对话框的应用程序 6.1 概述控件对话框与控件是密不可分的。Windows提供了一批基本控件,如编辑控件(Edit Box)、组合框控件等,可解决大部分用户输入界面设计的需求。 第6章基于对话框的应用程序 6.1 概述演示程序【例
5、6-1】设计数据采集模拟应用程序。 第6章基于对话框的应用程序 6.1 概述演示程序【例6-1】设计数据采集模拟应用程序,设计要求如下: 1、使用定时器模拟产生实时数据; 2、显示曲线,可以定制曲线颜色、线型;第6章基于对话框的应用程序 6.2 按钮控件第6章基于对话框的应用程序 6.2 按钮控件创建按钮控件CButton类的成员函数Create负责创建按钮控件,该函数的原型为:BOOL Create ( LPCTSTR lpszCaption, / 指定按钮显示的正文 DWORD dwStyle, / 按钮的风格 const RECT& rect, / 按钮的位置和大小 CWnd* pPar
6、entWnd, / 父窗口指针 UINT nID / 按钮的ID );第6章基于对话框的应用程序 6.2 按钮控件创建按钮控件1、按钮控件消息映射宏ON_BN_CLICKED、ON_BN_DOUBLECLICKED2、常见的按钮控件复选框:常用于只有两种完全相反状态的情况下;单选按钮:适用于同一组属性相同的数据中选一个数据;下压式按钮:适用于消息的发送;分组框:没有太多的操作,只是在窗口中划分区域范围。 第6章基于对话框的应用程序 6.2 按钮控件创建按钮控件程序举例:CButton *pButton = new CButton();CRect rt(10,10,70,30);pButton-
7、Create(“确定”, WS_CHILD|WS_VISIBLE |BS_PUSHBUTTON, rt, this, IDB_DEMO);第6章基于对话框的应用程序 6.2 按钮控件按钮控件编程演示按钮控件的使用方法,重点说明单选按钮的使用方法。第6章基于对话框的应用程序 6.2 按钮控件单选按钮同一组中的单选按钮的ID值必须连续;同一组中的单选按钮关联同一个整型变量;每组的第一个单选按钮设置Group属性。第6章基于对话框的应用程序 6.3 滚动条控件滚动条是一个交互式的、高度可视化的控件,它包括一个滑块、滚动条的两端的按钮等。滚动条控件与属于窗口的滚动条是不一样的。滚动条控件是由用户创建、
8、管理和释放的, 属于窗口的滚动条是由该窗口创建、管理和释放的。 第6章基于对话框的应用程序 6.3 滚动条控件CScrollBar类第6章基于对话框的应用程序 6.3 滚动条控件创建与初始化创建CScrollBar对象的一般步骤:(1) 用C+关键字new和构造函数CScrollBar()为一个ScrollBar类分配一个实例。(2) 初始化CScrollBar对象,将一个Windows滚动条赋予它,并用Create( )方法设置参数和样式。BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID ); 第
9、6章基于对话框的应用程序 6.3 滚动条控件成员函数void SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE ); / 设置滚动范围void GetScrollRange( LPINT lpMinPos, LPINT lpMaxPos) const; / 查询滚动范围int SetScrollPos( int nPos, BOOL bRedraw = TRUE ); / 设置滑动块位置int GetScrollPos() const; / 查询滑动块位置 第6章基于对话框的应用程序 6.3 滚动条控件程序举例:CScr
10、ollBar *pMyScroll = new CScrollBar( );CRect rt(10,10,120,30);pMyScroll-Create(WS_CHILD|WS_VISIBLE |SBS_VERT, rt, this,IDS_DEMO); 第6章基于对话框的应用程序 6.3 滚动条控件程序举例: pMyScroll-SetScrollRange(SB_VERT, -100,100); / 设置滚动范围/ 设置滑动块位置pMyScroller-SetScrollPos(0);第6章基于对话框的应用程序 6.3 滚动条控件滚动条编程演示滚动条控件的使用方法,拖动滑块时调整RGB宏
11、的参数值,改变曲线的颜色。 第6章基于对话框的应用程序 6.3 滚动条控件应用举例滚动条操作void CDemoDlg:OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) 说明:UINT nSBCode滚动条动作标识 SB_THUMBTRACK SB_LINELEFT SB_LINERIGHT SB_PAGELEFT SB_PAGERIGHT SB_LINEDOWN SB_LINEUP SB_PAGEDOWN SB_PAGEUP第6章基于对话框的应用程序 6.4 列表框控件列表框常应用于从众多数据中选某一项。列表框经常用在对话框
12、里,列表框有一个预定义的键盘接口,用户可以用键盘上的箭头和PageUp或PageDown键在列表框中进行数据的选择,或通过适当的样式设置,允许与Shift或Ctrl键组合使用。 第6章基于对话框的应用程序 6.4 列表框控件CListBox类第6章基于对话框的应用程序 6.4 列表框控件成员函数BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );第6章基于对话框的应用程序 6.4 列表框控件成员函数int AddString( LPCTSTR lpszItem );int DeleteString
13、( UINT nIndex );int InsertString( int nIndex, LPCTSTR lpszItem );void ResetContent( );int SelectString(int nStartAfter, LPCTSTR lpszItem );第6章基于对话框的应用程序 6.4 列表框控件成员函数void GetText( int nIndex, CString& rString ) const;int GetSel( int nIndex ) const;int GetCurSel( ) const;int SetCurSel( int nSelect );
14、第6章基于对话框的应用程序 6.4 列表框控件成员函数 int Dir( UINT attr, LPCTSTR lpszWildCard );attr: 可以是下列值的任意组合 第6章基于对话框的应用程序 IDValueIDValueDDL_READWRITE0 x0000DDL_DIRECTORY0 x0010DDL_READONLY0 x0001DDL_ARCHIVE0 x0020DDL_HIDDEN0 x0002DDL_DRIVES0 x4000DDL_SYSTEM0 x0004DDL_EXCLUSIVE0 x8000lpszWildCard: Points to a file-spec
15、ification string. 6.5 编辑框控件CEdit类编辑框控件看起来是个非常简单的矩形窗口,但它具有许多功能,编辑框控件可以自带滚动条,显示多行文本。第6章基于对话框的应用程序 6.5 编辑框控件成员函数BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );第6章基于对话框的应用程序 6.5 编辑框控件成员函数void SetSel( int nStartChar, int nEndChar, BOOL bNoScroll = FALSE );void GetSel( int& nSt
16、artChar, int& nEndChar ) const;void ReplaceSel( LPCTSTR lpszNewText, BOOL bCanUndo = FALSE ); 第6章基于对话框的应用程序 6.5 编辑框控件成员函数BOOL SetReadOnly( BOOL bReadOnly = TRUE );void Copy( );void Cut( );void Paste( );BOOL Undo( );void Clear( );第6章基于对话框的应用程序 6.6 组合框控件组合框是两种预定义窗口的组合形式。在Windows编程中使用单一控件往往不能完全满足与用户交互的需要,最常见的组合框例子是列表框及与其相联系的静态文本和编辑框。 第6章基于对话框的应用程序 6.6 组合框控件成员函数BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );第6章基于对话框的应用程序 6.6 组合框控件成员函数int AddString( LPCTSTR lpszString );int DeleteString( UINT nIndex );int InsertString( int nIndex, LPCTSTR lpszS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人与企业间设备分期借款合同2篇
- 二零二五年度棉花种植保险合同4篇
- 2025年度土地租赁合同租赁期满后续约协议
- 二零二五年度体育休闲用地及体育场馆房屋转让合同
- 二零二五年度口红租赁与品牌授权合作合同3篇
- 二零二五年度医疗设备融资租赁合同模板9篇
- 2025年教育培训机构兼职招生销售合同3篇
- 2025年度办公楼保洁服务合同规范集3篇
- 二零二五年房地产项目工程监理与造价咨询合同3篇
- 二零二五年度新能源汽车牌照租赁与充电网络建设合同4篇
- 华为HCIA-Storage H13-629考试练习题
- Q∕GDW 516-2010 500kV~1000kV 输电线路劣化悬式绝缘子检测规程
- 辽宁省抚顺五十中学2024届中考化学全真模拟试卷含解析
- 2024年湖南汽车工程职业学院单招职业技能测试题库及答案解析
- 家长心理健康教育知识讲座
- GB/T 292-2023滚动轴承角接触球轴承外形尺寸
- 2024年九省联考高考数学卷试题真题答案详解(精校打印)
- 军人结婚函调报告表
- 民用无人驾驶航空器实名制登记管理规定
- 北京地铁6号线
- 航空油料计量统计员(初级)理论考试复习题库大全-上(单选题汇总)
评论
0/150
提交评论