VC++6.0基本控件的使用_第1页
VC++6.0基本控件的使用_第2页
VC++6.0基本控件的使用_第3页
VC++6.0基本控件的使用_第4页
VC++6.0基本控件的使用_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-4-201C+面向对象程序设计普通高等教育“十一五”国家级规划教材中国高等院校计算机基础教育课程体系规划教材谭浩强 编著 湖南工业大学 计算机与通信学院2022-4-202第16讲 VC+6.0基本控件的使用16.1 授课内容授课内容VC+6.0基本控件的使用基本控件的使用。主要内容:1基于对话框结构的程序设计;2在基于对话框结构的界面上添加菜单;3创建模态对话框和非模态对话框;4常用控件的使用。2022-4-203第16讲 VC+6.0基本控件的使用16.2 授课要求授课要求1掌握基于对话框结构的程序设计;掌握基于对话框结构的程序设计;2掌握在基于对话框结构的界面上添加菜单;掌握在

2、基于对话框结构的界面上添加菜单;3掌握创建模态对话框和非模态对话框;掌握创建模态对话框和非模态对话框;4熟悉常用控件的使用。熟悉常用控件的使用。2022-4-204第16讲 VC+6.0基本控件的使用16.3 授课重点授课重点1重点是常用控件的使用。重点是常用控件的使用。16.4 授课难点授课难点1难点是熟练掌握常用控件的使用方法。难点是熟练掌握常用控件的使用方法。2022-4-2051基于对话框的应用程序设计基于对话框的应用程序设计基于对话框的应用程序结构适合于比较简单的应用程序。(1)生成基于对话框的应用程序)生成基于对话框的应用程序 第第1步:步:对话框中,选择生成Dialog Base

3、d(基于对话框)的应用程序即可 。第第2步:步:用于设置应用程序的属性,包括是否使用版权对话框、是否需要生成上下文有关的帮助、是否使用3D风格的控件,以及是否需要对ActiveX控件的支持等问题。 第第3步:步:用于设置程序风格。第第4步:步:用于检查和修改拟为应用程序生成的类的有关参数 。即生成基于对话框的应用程序。2022-4-206利用向导生成的基于对话框的应用程序界面:2022-4-207(2)设置对话框界面的属性编辑主对话框,按右键选择属性,则可设置对话框的属性。常用的属性有:基本属性(General):字体、菜单、对话框所处位置等;风格(Styles):系统菜单、最大化、最小化、滚

4、动条等;更多风格(More Styles)、扩展风格、更多扩展风格。 2022-4-208设置界面风格后的效果图2022-4-209(3)对话框的初始化对话框的初始化工作一般在构造函数和CDialog:OnInitDialog ()函数中完成。在对话框创建时,会收到WM_INITDIALOG消息,对话框对该消息的处理函数是OnInitDialog()。如果必要,用ClassWizard重载此函数。2022-4-2010(4)对话框数据交换和数据检验机制控件与用户的数据交流和检验机制通过CDialog:DoDataExchange()函数来完成,其原型为:virtual void DoDataE

5、xchange ( CDataExchange * pDX );成员变量的值 与 控件显示的值之间的传递方向由下面两个函数决定:UpdateData(TRUE); /从对话框到变量从对话框到变量UpdateData(FALSE); /从变量到对话框从变量到对话框2022-4-20112在基于对话框结构的界面上添加菜单在基于对话框结构的界面上添加菜单(1)新建菜单资源)新建菜单资源在资源工作区中添加一新的菜单,然后编辑此菜单。(2)添加到对话框上)添加到对话框上编辑对话框资源,选择对话框属性,在弹出的属性对弹出的属性对话框中,在话框中,在菜单选项中选中需要添加的菜单菜单选项中选中需要添加的菜单I

6、D,即可。2022-4-2012添加菜单后的界面图2022-4-20134模态对话框和非模态对话框模态对话框和非模态对话框(1)含义对话框按其动作模式分为“有模式”和“无模式”两大类。有模式有模式对话框在被关闭之前,用户无法再进行其它工无法再进行其它工作作;无模式无模式对话框被关闭之前,用户可以在应用程序的其可以在应用程序的其它窗口中进行工作它窗口中进行工作。当有模式对话框被打开之后,它就接管了父窗口的输入控制权,只有当用户关闭了该对话框之后,控制权才交给父窗口。而无模式对话框则与父窗口共享控制权,用户可以在主窗口和对话框之间来回切换。2022-4-2014(2)使用有模式对话框)使用有模式对

7、话框方法如下:(a)编辑对话框资源。在Insert菜单中选择Resource菜单项或直接按下Ctrl+R加速键,打开Insert Resource对话框,如图1所示。 图12022-4-2015在对话框中选取Dialog图标,然后单击New按钮,这时将建立一个新的对话框,并打开对话框编辑器,如图2所示。图22022-4-2016(b)为对话框建立一个新类,然后创建对话框类的对象,才能使用这个资源。 (c)打开模态对话框。在某类中,要使用模态对话框,则:通过类向导建立加入头文件:该模态对话框类的头文件。定义模态对话框类对象: 类名 对象名;显示该模态对话框: 对象.DoModal( );看演示2

8、022-4-2017(3)使用非模态对话框)使用非模态对话框使用非模态对话框的方法如下:(a)首先建立非模态对话框资源和对话框类,与前(a)和(b)两步一样。(b)在要用到的类中定义一个成员变量,即一个指向非模态对话框的指针。比如:DialModalLess *m_pModelless; /定义时,需要包含头文件。2022-4-2018(3)使用非模态对话框)使用非模态对话框(c)用下列语句打开非模态对话框:/判断指针是否为NULL,如果为NULL,说明对话框没有创建,则动态创建对话框if(m_pModelless=NULL)m_pModelless=new DialModalLess();m

9、_pModelless-Create( IDD_DIALOGModalLess,this);m_pModelless-ShowWindow(SW_SHOW); /显示对话框看演示2022-4-2019(3)使用非模态对话框)使用非模态对话框注意:注意:(a)非模态对话框的模板资源必须具有Visible风格 ;(b)非模态对话框对象是用new操作符动态创建的 ;(c)通过调用CDialog:Create()函数来启动非模态对话框 ;(d)必须重载并重新编写对话框的OnOK()和OnCancel()函数; (e)必须在对话框关闭后,用delete操作符删除之; (f)必须有一个标志表明非模态对话框

10、是否打开。2022-4-20204公用对话框公用对话框 (1)CColorDialog(颜色选择对话框类) (2)CFontDialog(字体选择对话框类) (3)CPrintDialog(打印和打印设置对话框类) (4)CFindReplaceDialog(文本查找和替换对话框类) (5)CFileDialog(文件选择对话框类) 这两个可以直接这样打开使用:这两个可以直接这样打开使用:CFontDialog f;f.DoModal();2022-4-20214公用对话框公用对话框CFileDialog示例:CString m_fileName; CFileDialog FileDlg(tr

11、ue,“*.bmp”,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,“bmp文件(*.bmp)|*.bmp;);*.bmp|所有文件(*.*)|*.*|); if(FileDlg.DoModal()=IDOK) m_fileName=FileDlg.GetFileName(); /UpdateData(false);2022-4-20225在对话框中加入控件在对话框中加入控件(1)控件 控件:一个现成的程序组件,可以独立运行以完成一定的功能 。控件(Control)是Windows提供的独立小部件,控件都是CWnd类派生出来的后代类对象,实际上也是一个窗口

12、,对应一个CWnd派生类的对象。每个控件均有一个标识符(ID)。2022-4-2023(2)对话框与控件对话框与控件是密不可分的。Windows提供了一批基本控件,如静态控件(Static Text)、编辑控件(Edit Box)、组框、列表框等,可解决大部分用户输入界面设计的需求。 2022-4-2024(3)向对话框加入控件在对话框资源编辑窗口旁边有一个控件工具箱,如图3所示,使用其中的工具可以向对话框增加控件。图3 Controls工具箱2022-4-2025(4)对齐控件为使对话框布局美观,需要精确地对齐控件需要精确地对齐控件。首先选中需要对齐的控件(用鼠标左键拖放一个矩形,使其包含所

13、需控件;或按住Ctrl键,然后用鼠标左键逐个选取控件),再使用再使用“控件对齐栏控件对齐栏”的各个按的各个按钮来对齐控件钮来对齐控件,如图4所示。看演示2022-4-20262022-4-2027(5)为对话框类加入成员变量)为对话框类加入成员变量对话框的主要功能是输出和输入数据,这个任务是通过控件完成的。为此,要为这些控件定义一个对应的为这些控件定义一个对应的成员变量成员变量。与控件对应的成员变量既可以是一个数据,也可以是成员变量既可以是一个数据,也可以是一个控件对象一个控件对象。利用利用ClassWizard可以很方便地为对话框类添加数据可以很方便地为对话框类添加数据成员成员,在弹出的对话

14、框中选择“member variables”,即可增加对应的成员变量。2022-4-2028看演示2022-4-20296常用控件的使用常用控件的使用(1)常用的控件有:)常用的控件有:A静态文本(Static Text)控件 ;B编辑(Edit Box)控件 ; C按钮(Button)控件 ; D检查框(Check Box)控件 ;E单选按钮(Radio Button)控件 ;F列表框(List Control)控件 ;G组框(Group Box)控件 ;H图片(Picture)控件 ;J组合框(Combo Box)是编辑控件和列表框的组合 。 2022-4-2030(2)控件的使用A静态文

15、本(静态文本(Static Text)控件和组框()控件和组框(Group Box)控件控件这两个控件直接添加上去,然后设置适当的属性值就可,一般不需另外编程。静态文本一般用于文字提示。组框用于把一些相同(或相似)功能的控件布局在一起。2022-4-2031(2)控件的使用文本框组框2022-4-2032(2)控件的使用选定一组控件的方法:选定一组控件的方法:(a)先通过菜单Layout/Tab Order设置好对话框中控件的跳格顺序。(b)设置控件属性,每组的第一个控件选中Group属性,同组的其他控件就不要选中Group属性。(c)另一组开始,再重复(b)步。注意:将控件组成一组并不靠组框

16、(注意:将控件组成一组并不靠组框(Group Box)控)控件起作用,件起作用,而是靠属性框中的而是靠属性框中的General标签中的标签中的Group属性和控件的跳格顺序(属性和控件的跳格顺序(Tab Order)决定的)决定的。2022-4-20332022-4-2034B编辑(编辑(Edit Box)控件)控件编辑控件的作用是接受用户输入的字符串信息。 它的ID很重要,因为要实现数据交换。使用方法:(a)添加编辑框控件,并设置属性。(b)为编辑框控件加入成员变量。 利用类向导即可添加。(c)成员变量的值 与 控件显示的值之间的传递。传递方法:UpdateData(TRUE); /从对话框

17、到变量从对话框到变量UpdateData(FALSE); /从变量到对话框从变量到对话框注意:变量的类型。2022-4-2035比如:下图中编辑框对应的变量名为:m_Num1、m_Num2、m_Result。计算两个数的和并显示出来。void CKJ17_1Dlg:OnEqual() UpdateData(TRUE);m_Result = m_Num1 + m_Num2;UpdateData(FALSE);代码2022-4-2036C按钮(按钮(Button)控件)控件命令按钮,用于执行一个自编函数或功能。使用方法:(a)添加按钮,并设置属性。(b)添加消息响应函数。通过类向导添加BN_CLI

18、CKED消息响应函数。(c)编辑消息响应函数。比如:前面的计算两个数的和的“=”命令函数。 2022-4-2037D检查框(检查框(Check Box)控件)控件它是复选框控件,可以从中选择多个从中选择多个。检查框检查框使用方法:(a)添加控件,设置属性。一般把几个一组的检查框用组框框在一起,并设置为一组。(b)为每一个控件添加一个BOOL类型的变量。当一个控件被选中时,所对应的变量值为真(TRUE),否则为假(FALSE)。图72022-4-2038D检查框(检查框(Check Box)控件)控件比如:对图7所示的检查框定义三个BOOL变量m_Chk1、 m_Chk2、 m_Chk3,增加一

19、个测试按钮,测试代码如下:void CKJ17_1Dlg:OnTestCheck() UpdateData(TRUE); /不能少CString str=;if (m_Chk1) str+=选中1. ;if (m_Chk2) str+=选中2. ;if (m_Chk3) str+=选中3. ; AfxMessageBox(str);2022-4-2039测试效果见图8。 图7 图82022-4-2040E单选按钮(单选按钮(Radio Button)控件)控件这是单选框控件,只能从中选择一个。使用方法:(a)添加控件,设置属性。一般把一组的几个单选框用组框框在一起,并设置为一组。(b)为整个组

20、定义一个整型变量,变量值对应的值从0开始(即0,1,2,)。比如:对图9所示的单选框定义一个int变量m_Radio,增加一个测试按钮。2022-4-2041测试代码如下:void CKJ17_1Dlg:OnTestRadio() UpdateData(TRUE);/不能少CString str=;str.Format(“选中第 %d 个 单选框。,m_Radio);AfxMessageBox(str);图9 图10 2022-4-2042F列表框(列表框(List Control)控件)控件List控件以列表的形式显示数据,一般可以用来显示数据的子集,如数据库中表的数据。List控件与CLi

21、stCtrl类相关联。使用方法:(a)添加控件,设置属性:Styles的查看为Report。(b)为该控件添加一个成员变量,为CListCtrl类对象。 比如:CListCtrl m_ListCtrl; (c)设置初值,再用户选择,然后读取用户选择的值。2022-4-2043比如:对下图的列表框进行测试,代码如下。void CKJ17_1Dlg:OnSetList( ) int i;m_ListCtrl.InsertColumn(0,学号,LVCFMT_LEFT,50,-1);m_ListCtrl.InsertColumn(1,姓名,LVCFMT_LEFT,100,-1);m_ListCtrl.InsertColumn(2,性别,LVCFMT_LEFT,150,-

温馨提示

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

评论

0/150

提交评论