VC++6.0基本控件的使用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
30
(2)控件的使用
组框
文本框
2015年9月13日5时39分
31
(2)控件的使用
选定一组控件的方法: (a)先通过菜单Layout/Tab Order设置好对话框中控 件的跳格顺序。 (b)设置控件属性,每组的第一个控件选中Group属 性,同组的其他控件就不要选中Group属性。 (c)另一组开始,再重复(b)步。
代码
void CKJ17_1Dlg::OnEqual() { UpdateData(TRUE); m_Result = m_Num1 + m_Num2; UpdateData(FALSE); }
35
2015年9月13日5时39分
C.按钮(Button)控件
命令按钮,用于执行一个自编函数或功能。 使用方法: (a)添加按钮,并设置属性。 (b)添加消息响应函数。通过类向导添加 BN_CLICKED消息响应函数。 (c)编辑消息响应函数。 比如:前面的计算两个数的和的“=”命令函数。
2015年9月13日5时39分
9
(4)对话框数据交换和数据检验机制
控件与用户的数据交流和检验机制通过 CDialog::DoDataExchange()函数来完成, 其原型为:virtual void DoDataExchange ( CDataExchange * pDX ); 成员变量的值 与 控件显示的值之间的传递方向由下面 两个函数决定: UpdateData(TRUE); //从对话框到变量 UpdateData(FALSE); //从变量到对话框
这两个可以直接这样打开使用: CFontDialog f; f.DoModal();
2015年9月13日5时39分 20
4.公用对话框
CFileDialog示例:
CString m_fileName; CFileDialog FileDlg(true,“*.bmp”,NULL,OFN_HIDEREADONLY|OFN_OVE RWRITEPROMPT,“bmp文件(*.bmp)|*.bmp;);*.bmp|所有文件 (*.*)|*.*||"); if(FileDlg.DoModal()==IDOK) { m_fileName=FileDlg.GetFileName(); //UpdateData(false); }
2015年9月13日5时39分
19
4.公用对话框
(1)CColorDialog(颜色选择对话框类) (2)CFontDialog(字体选择对话框类)
(3)CPrintDialog(打印和打印设置对话框类)百度文库(4)CFindReplaceDialog(文本查找和替换对话框类) (5)CFileDialog(文件选择对话框类)
注意:变量 的类型。
(c)成员变量的值 与 控件显示的值之间的传递。 传递方法: UpdateData(TRUE); //从对话框到变量 UpdateData(FALSE); //从变量到对话框
2015年9月13日5时39分 34
比如:下图中编辑框对应的变量名为: m_Num1、m_Num2、m_Result。 计算两个数的和并显示出来。
2015年9月13日5时39分
7
设置界面风格后的效果图
2015年9月13日5时39分
8
(3)对话框的初始化
对话框的初始化工作一般在构造函数和 CDialog::OnInitDialog ()函数中完成。
在对话框创建时,会收到WM_INITDIALOG消息,对话 框对该消息的处理函数是OnInitDialog()。 如果必要,用ClassWizard重载此函数。
图2
2015年9月13日5时39分 15
(b)为对话框建立一个新类,然后创建对话框类的对 象,才能使用这个资源。
通过类向导建立 (c)打开模态对话框。 在某类中,要使用模态对话框,则: 加入头文件:该模态对话框类的头文件。
看演示
定义模态对话框类对象: 类名 对象名;
显示该模态对话框: 对象.DoModal( );
2015年9月13日5时39分 27
看演示
2015年9月13日5时39分
28
6.常用控件的使用
(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)是编辑控件和列表框的组合 。
2015年9月13日5时39分 16
(3)使用非模态对话框
使用非模态对话框的方法如下: (a)首先建立非模态对话框资源和对话框类,与前 (a)和(b)两步一样。
(b)在要用到的类中定义一个成员变量,即一个指向 非模态对话框的指针。 比如:DialModalLess *m_pModelless; //定义时,需要包含头文件。
2015年9月13日5时39分 18
(3)使用非模态对话框
注意: (a)非模态对话框的模板资源必须具有Visible风格 ; (b)非模态对话框对象是用new操作符动态创建的 ; (c)通过调用CDialog::Create()函数来启动非模态 对话框 ; (d)必须重载并重新编写对话框的OnOK()和 OnCancel()函数; (e)必须在对话框关闭后,用delete操作符删除之; (f)必须有一个标志表明非模态对话框是否打开。
2015年9月13日5时39分
22
(2)对话框与控件
对话框与控件是密不可分的。Windows提供了一批基 本控件,如静态控件(Static Text)、编辑控件 (Edit Box)、组框、列表框等,可解决大部分用户 输入界面设计的需求。
2015年9月13日5时39分
23
(3)向对话框加入控件
在对话框资源编辑窗口旁边有一个控件工具箱,如图3 所示,使用其中的工具可以向对话框增加控件。
2015年9月13日5时39分 29
(2)控件的使用
A.静态文本(Static Text)控件和组框(Group Box) 控件 这两个控件直接添加上去,然后设置适当的属性值就可, 一般不需另外编程。 静态文本一般用于文字提示。
组框用于把一些相同(或相似)功能的控件布局在一起。
2015年9月13日5时39分
2015年9月13日5时39分
25
2015年9月13日5时39分
26
(5)为对话框类加入成员变量
对话框的主要功能是输出和输入数据,这个任务是通过 控件完成的。为此,要为这些控件定义一个对应的 成员变量。 与控件对应的成员变量既可以是一个数据,也可以是 一个控件对象。
利用ClassWizard可以很方便地为对话框类添加数据 成员,在弹出的对话框中选择“member variables”, 即可增加对应的成员变量。
2015年9月13日5时39分 21
5.在对话框中加入控件
(1)控件 控件:一个现成的程序组件,可以独立运行以完成一定 的功能 。
控件(Control)是Windows提供的独立小部件,控件 都是CWnd类派生出来的后代类对象,实际上也是一 个窗口,对应一个CWnd派生类的对象。
每个控件均有一个标识符(ID)。
2.在基于对话框结构的界面上添加菜单;
3.创建模态对话框和非模态对话框;
4.常用控件的使用。
2015年9月13日5时39分
2
第16讲 VC++6.0基本控件的使用
16.2 授课要求 1.掌握基于对话框结构的程序设计; 2.掌握在基于对话框结构的界面上添加菜单; 3.掌握创建模态对话框和非模态对话框; 4.熟悉常用控件的使用。
图3 Controls工具箱
2015年9月13日5时39分 24
(4)对齐控件
为使对话框布局美观,需要精确地对齐控件。 首先选中需要对齐的控件(用鼠标左键拖放一个矩形, 使其包含所需控件;或按住Ctrl键,然后用鼠标左键 逐个选取控件),再使用“控件对齐栏”的各个按 钮来对齐控件,如图4所示。
看演示
2015年9月13日5时39分
3
第16讲 VC++6.0基本控件的使用
16.3 授课重点 1.重点是常用控件的使用。
16.4 授课难点
1.难点是熟练掌握常用控件的使用方法。
2015年9月13日5时39分
4
1.基于对话框的应用程序设计
(1)生成基于对话框的应用程序
第1步:对话框中,选择生成Dialog Based(基于对话框)的应 用程序即可 。 第2步:用于设置应用程序的属性,包括是否使用版权对话框、 是否需要生成上下文有关的帮助、是否使用3D风格的控件, 以及是否需要对ActiveX控件的支持等问题。 第3步:用于设置程序风格。 第4步:用于检查和修改拟为应用程序生成的类的有关参数 。 即生成基于对话框的应用程序。
普通高等教育“十一五”国家级规划教材 中国高等院校计算机基础教育课程体系规划教材
谭浩强 编著
C++面向对象程序设计
湖南工业大学 计算机与通信学院
2015年9月13日5时39分 1
第16讲 VC++6.0基本控件的使用
16.1 授课内容
VC++6.0基本控件的使用。主要内容:
1.基于对话框结构的程序设计;
2015年9月13日5时39分 10
2.在基于对话框结构的界面上添加菜单
(1)新建菜单资源 在资源工作区中添加一新的菜单,然后编辑此菜单。
(2)添加到对话框上 编辑对话框资源,选择对话框属性,在弹出的属性对 话框中,在菜单选项中选中需要添加的菜单ID,即 可。
2015年9月13日5时39分
11
添加菜单后的界面图
基于对话框的应用程序结构适合于比较简单的应用程序。
2015年9月13日5时39分
5
利用向导生成的基于对话框的应用程序界面:
2015年9月13日5时39分
6
(2)设置对话框界面的属性
编辑主对话框,按右键选择属性,则可设置对话框的属 性。
常用的属性有: 基本属性(General):字体、菜单、对话框所处位置 等; 风格(Styles):系统菜单、最大化、最小化、滚动条等; 更多风格(More Styles)、扩展风格、更多扩展风格。
2015年9月13日5时39分
12
4.模态对话框和非模态对话框
(1)含义 对话框按其动作模式分为“有模式”和“无模式”两大 类。 有模式对话框在被关闭之前,用户无法再进行其它工 作; 无模式对话框被关闭之前,用户可以在应用程序的其 它窗口中进行工作。
当有模式对话框被打开之后,它就接管了父窗口的输入 控制权,只有当用户关闭了该对话框之后,控制权才 交给父窗口。而无模式对话框则与父窗口共享控制权, 13 用户可以在主窗口和对话框之间来回切换。 2015 年9月13日5时39分
2015年9月13日5时39分
17
(3)使用非模态对话框
(c)用下列语句打开非模态对话框: //判断指针是否为NULL,如果为NULL,说明对话框没 有创建,则动态创建对话框 看演示 if(m_pModelless==NULL) { m_pModelless=new DialModalLess(); m_pModelless->Create( IDD_DIALOGModalLess,this); } m_pModelless->ShowWindow(SW_SHOW); //显示对话框
注意:将控件组成一组并不靠组框(Group Box)控 件起作用,而是靠属性框中的General标签中的 Group属性和控件的跳格顺序(Tab Order)决定的。
2015年9月13日5时39分 32
2015年9月13日5时39分
33
B.编辑(Edit Box)控件
编辑控件的作用是接受用户输入的字符串信息。 它的ID很重要,因为要实现数据交换。 使用方法: (a)添加编辑框控件,并设置属性。 (b)为编辑框控件加入成员变量。 利用类向导即可添加。
(2)使用有模式对话框
方法如下: (a)编辑对话框资源。 在Insert菜单中选择Resource菜单项或直接按下Ctrl+R 加速键,打开Insert Resource对话框,如图1所示。
图1
2015年9月13日5时39分 14
在对话框中选取Dialog图标,然后单击New按钮,这时 将建立一个新的对话框,并打开对话框编辑器,如图 2所示。