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