版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章对话框及常用控件7.1对话框的使用7.2常用控件思考题
7.1对话框的使用
对话框在Windows中应用很普遍,它往往作为与用户交互的场所,使用户向应用程序传递某些信息。对话框是一个特殊类型的窗口,任何对窗口进行的操作(如移动、最大化、最小化等)也可在对话框实施。与VisualC++的其他窗口相比,对话框的最大优点还在于它更易于放置控件,如利用编辑框、按钮、列表框、组合框、滚动条、旋转按钮控件以及滑动条等来和用户进行交互。7.1.1模式和无模式对话框
对话框有两种类型,一种是模式对话框,另一种是无模式对话框。
1.模式对话框
在模式对话框情形,出现对话框时,应用程序的主窗口都会被冻结,无法执行任何动作,如Word的字体对话框。当弹出此对话框时,Word的主窗口将无法执行任何编辑动作。
一般情况下,模式对话框会有[OK](确定)和[Cancel](取消)按钮,单击[OK](确定)按钮,系统认定用户在对话框中的选择或输入有效,对话框退出;单击[Cancel](取消)按钮,对话框中的选择或输入无效,对话框退出,程序回复原有状态。
模式对话框的应用范围较广,平常所见到的对话框大部分为模式对话框。
2.无模式对话框
在无模式对话框情形,应用程序的主窗口仍然可以操作,如Word中的查找对话框出现时,主窗口还是可以进行编辑操作。当需要使用对话框时,只需像激活一般窗口一样单击对话框所在的区域即可。
MFC提供了CDialog对话框类,它同时支持这两种对话框。
CDialog类是所有对话框类的基类。它定义了一个构造函数和一个Create()成员函数来创建对话框。构造函数根据对话框模板ID(通常有一个IDD前缀,如IDD_DIALOG1)来访问对话框资源。该函数经常用于构造一个基于资源的模式对话框。而Create函数则使用对话框模板,由资源创建无模式对话框。
CDialog中有许多成员函数,其中最重要的有四个:
(1) virtualintCDialog::DoModal()。用于激活模式对话框,完成后返回对话框结果。在此对话框关闭前,用户不能与应用程序的其他窗口交互。函数返回一个int型数值,当函数无法建立对话框时返回-1,发生错误时返回IDABORT。
(2) virtualBOOLCDialog::OnInitDialog()。用于响应WM_INITDIALOG消息。在Create()或DoModal()调用期间,系统会发送WM_INITDIALOG给对话框,在对话框显示之前执行该函数。
(3) protectedvirtualvoidCDialog::OnOK()。在用户单击OK按钮(ID为IDOK)时,调用该函数。
(4) protectedvirtualvoidCDialog::OnCancel()。在用户单击Cancel按钮或按Esc键时被调用。在模式对话框下,将自动终止模式对话框,DoModal()返回IDCANCEL。7.1.2创建对话框
创建对话框的方法有两种途径:
(1)使用AppWizard创建一个新的工程文件,选择“你喜爱创建的应用程序类型”时,在单选框中选中“基本对话”选项,如图7-1所示。这种方法建立的应用程序都是基于对话框框架的。
(2)在SDI或MDI方式下,通过选择项目工作区的“ResourceView”选项卡,展开“Dialog”选项,可在里面手动添加用户自定义对话框。图7-1利用AppWizard建立对话框下面学习如何在SDI界面下创建一个对话框。
【例7-1】
为第6章例6-7增加一个对话框。
操作步骤如下:
(1)打开chap6_1工程文件。
(2)在项目区选中,展开文件夹,可以看到里面有一个名为的文件,用鼠标左键双击,在右边客户区出现如图7-2所示的对话框窗口。图7-2关于chap6_1的对话框提示:该对话框为系统自带对话框,提供用户输入对应用程序版本和版权声明等信息,用户可对其文字内容进行更改。该对话框与菜单栏中的“帮助”下拉子菜单中的“关于”子项相对应,选中该项即弹出此对话框。
此对话框并非希望的用户自定义对话框,因此应手动添加一新对话框。
(3)鼠标右键单击文件夹,在弹出的快捷菜单中选择项并用鼠标左键单击确认,在“Dialog”文件夹下自动添加了一个名为的文件,在右边客户区出现如图7-3所示的对话框窗口。图7-3用户新建对话框注意:对话框中只有两个按钮“OK”和“Cancel”,没有别的内容,需要用户根据自己的需要手动添加控件。
提示:如果想删除添加的对话框,可以直接在“Dialog”展开文件中选中要删除的对话框,然后直接按键盘上“Delete”键将其删除。
(4)现在已经添加了一个对话框,运行程序,其结果如图7-4所示。
提示:运行程序并未看到用户自己建立的对话框。图7-4例7-1运行结果
7.2常用控件
控件是在系统内部定义的能够完成特定功能的控制程序单元。在应用程序中使用控件不仅简化了编程,还能完成常用的各种功能。为了更好地发挥控件作用,用户还必须理解和掌握控件的属性、消息以及创建和使用的方法。
对话框中通常包含控件,用来与用户进行信息的交互。下面介绍一下对话框常用的控件。
在进行对话框的界面设计中,VC++6.0中已经提供了控件工具。当用户新建立一个对话框时,控件工具栏一般会自动弹出。如果没有看到控件工具栏,则由用户手动显示。其方法为:
(1)在VC++6.0操作界面的工具栏右边的空白处,单击鼠标右键,即弹出快捷菜单,如图7-5所示。图7-5显示工具栏菜单
(2)选中“Controls”选项,即弹出控件工具栏,该工具栏提供了对话框界面设计的常用控件,如图7-6所示。
VC++6.0提供了很多控件,而且每个控件都有大量的属性和事件。下面将对一些常用的控件做介绍。图7-6控件工具栏7.2.1静态控件
一个静态控件是用来显示一个字符串、框、矩形、图标、位图或增强的图元文件。它可以被用来作为标签、框或用来分隔其他的控件。一个静态控件一般不接收用户输入,也不产生通知消息。
在控制工具栏中,属于静态控件的有:静态文本、组框和静态图片三种。其中静态文本(StaticText)是一种单向交互的控制,只能支持应用程序的输出,一般不响应用户的输入,通常作为显示不更改文本信息使用。7.2.2按钮
按钮(Button)是Windows标准按钮,通常也叫命令按钮,是最常用的控件之一。
如果按钮具有焦点,可以使用鼠标左键、Enter键或空格键触发该按钮的Click事件。通过设置窗体的AcceptButton或CancelButton属性,无论该按钮是否有焦点,都可以使用户通过按Enter键或Esc键来触发按钮的Click事件。当使用ShowDialog方法显示窗体时,可以使用按钮的DialogResult属性指定ShowDialog的返回值。
下面将介绍VC++6.0在对话框中添加按钮及按钮属性的设置方法。
(1)在图7-6所示的控件工具栏里选择按钮,在图7-3新建的对话框中单击鼠标左键就在该对话框中增加了一个按钮,如图7-7所示。图7-7在对话框中添加按钮
(2)在按钮上单击鼠标右键,弹出如图7-8所示的快捷菜单。
(3)选择选项,弹出如图7-9所示的“PushButtonProperties”对话框。
在控件的对话框中含有许多属性,如图7-9所示(按钮的属性对话框)。对于大多数控件来说,这些属性一般都有(一般属性)、(控件的风格)和(控件的扩展风格)。其中和是用来设定控件的外观和辅助功能的,不同的控件具有不同的风格和扩展风格,但控件的一般属性是基本相同的,它通常有标识符框、标题框等内容,各项具体说明如下。图7-8按钮的右键快捷菜单图7-9“PushButtonProperties”对话框①:控件的标识符。每种控件都有缺省的ID,例如按钮控件为IDC_BUTTON1。
②:控件的标题。大多数控件都有缺省的标题,例如按钮控件为Button1。
③:指定控件初始化时是否可见。
④:指定控件组中的第一个控件,如果该项未被选中,则此控件后的所有控件均被看成同一组。成组的目的是可以让用户用键盘方向键在同一组控件中进行切换。
⑤:若该项被选中,则为该控件建立一个上下文相关的帮助标识符。
⑥:指定控件初始化时是否禁用。
⑦:若该项被选中,则用户可使用Tab键来选控件。7.2.3编辑框
编辑框(EditBox)是一个用户从键盘输入和编辑文字的矩形窗口,用户可以通过它进行文字、数字或口令的输入,也可以使用它来编辑或修改简单的文本文件。被选中后,编辑控制框中将显示其文本(如果有)和一个闪烁的插入符,插入符用以表示插入点的位置。然后用户就可以用键盘或鼠标来输入文本、移动插入点或者选择将移动或删除的文本。
编辑框通常用于编辑文本,不过也可使其成为只读控件。编辑框能够显示多行数据,并对文本换行使其符合控件的大小,并添加基本的格式设置。但是编辑框中显示或输入的文本只能采用一种格式。
Text属性是编辑框最重要的属性,因为要显示的文本就包含在Text属性中。默认情况下,最多可在一个编辑框中输入2048个字符。如果将MultiLine属性设置为True,则最多可输入32 KB的文本。Text属性可以在设计窗体时使用属性窗口设置,也可以在运行时用代码设置或者通过用户输入来设置。可以在运行时通过读取Text属性来获得编辑框的当前内容。7.2.4单选框
单选框(RadioButton)通常成组出现,允许用户进行单项选择时使用,选中其中一项,其余各项不能被同时选中。当其被选中时,单选框中就标上一个黑点,如图7-10所示。图7-10单选框示例当单击单选框时,其Checked属性被设置为True,并调用Click事件处理程序。当Checked属性的值更改时,将触发CheckedChanged事件。如果AutoCheck属性被设置为True(默认),那么当选择该单选框时,将自动清除该组中所有其他单选框。通常只有在使用验证代码以确保选定的单选框是允许的选项时,才将该属性设置为False。用Text属性可以设置控件内显示的文本,该属性也可以包含访问键快捷方式,即前面带有“&”符号的字母,这样用户就可以通过同时按Alt键和访问键来“单击”控件。
如果将Appearance属性设置为Button,将使单选框的外观像按钮一样,即当选定它时,它看起来已被按下。单选框也可以使用Image和ImageList属性组合来显示图像。7.2.5复选框
复选框(CheckBox):允许用户进行多项选择时使用。当其被选中时,复选框中就加上一个“×”标记,如图7-11所示。图7-11复选框示例复选框和单选框的相似之处在于,它们都是供用户选择的选项。其不同之处在于,在单选框组中一次只能选择一个单选框,而在一组复选框中则可以同时选择任意多项。
复选框有两个重要属性Checked和CheckState。Checked属性返回True或False。CheckState属性返回CheckState.Checked或CheckState.Unchecked。如果ThreeState属性被设置为True,CheckState属性还可返回CheckState.Indeterminate,此时,复选框显示为浅灰色状态,通常表示该选项下的多个子选项未完全选中。7.2.6组合框
列表框(ListBox)是一个放有用户可以选择的对象项列表的控制窗口。列表框中项的数目是可以灵活变化的,程序运行时可以往列表框中添加或删除某些项。当列表框中的数目较多时,列表框还提供滚动条来拓展显示范围。
组合框(ComboBox)兼有编辑框和列表框二者的优点,在其下拉列表中有用户待选的选项,但当用户想往其中输入没有的列表项时,组合框可以像编辑框似的直接输入文本,为其待选项增加项目。按照组合框的主要风格特征,可把组合框分为三类:简单组合框、下拉式组合框、下拉式列表框。
简单组合框和下拉式组合框都包含有列表框和编辑控件,但是简单组合框中的列表框不需要下拉,是直接显示出来的,而当用户单击下拉式组合框中的下拉按钮时,下拉的列表框才被显示出来。下拉式列表框虽然具有下拉式的列表,却没有文字编辑功能。
组合框还有其他一些风格,这些风格可以在组合框的“属性”对话框中设置,如图7-12所示。图7-12组合框的“属性”对话框组合框的Style属性说明如下:
(1):设置组合框的类型:Simple(简单)、Dropdown(下拉)、DropList(下拉列表框)。
(2):自画组合框,缺省为No。
(3):选中时,在自画组合框的项目中含有字符串文本。
(4):选中时,组合框的项目按字母顺序排列。
(5):选中时,在组合框中创建一个垂直滚动条。
(6):选中时,在创建组合框的过程中,系统会把用户指定的尺寸完全作为组合框的尺寸,而不管是否会有项目在组合框的列表中不能完全显示出来。
(7):选中时,实现对特定字符集的字符转换。
(8):当用户在行尾键入一个字符时,文本自动向右滚动。
(9):选中时,即使组合框的列表项能全部显示,垂直滚动条也会显示,但此时呈现灰色状态,即禁用。
(10):选中时,键入在编辑控件的字符全部转换成大写形式。
(11):选中时,键入在编辑控件的字符全部转换成小写形式。7.2.7常用控件的应用例程
【例7-2】
为例7-1新建的对话框增加控件,构成一个学生个人信息登记的操作界面,包含学生姓名、学号、性别、学院及其他信息,点击OK后在学生信息中显示所有输入的
信息。
其操作步骤如下:
(1)打开chap6_1工程文件。
(2)在项目区选中,展开文件夹,鼠标左键双击,在右边编辑区利用提供的控件工具栏布置对话框。
(3)在控件工具栏中选中“静态文本”控件,回到ID_DIALOG1对话框。此时,鼠标指针变为,按下鼠标左键不放,然后拖动鼠标到一定位置松开鼠标,则在对话框中出现控件。
提示:控件周围出现的蓝色边框,用户将鼠标左键移动到蓝点处,按下鼠标左键,可以拖动鼠标更改控件外观大小。
(4)鼠标右键单击控件,在弹出的菜单中,选择“属性”项,则弹出“TextProperties”对话框,如图7-13所示。图7-13“TextProperties”对话框
(5)在标题右边的编辑框中输入“学生个人信息登记”字符串,然后关闭对话框。可以看到对话框中该编辑框内容为,如图7-14所示。
提示:一般情况下对静态文本属性的修改都只更改其标题。
(6)使用同样的方法,增加“姓名”、“学号”、“性别”、“学院”、“其他”和“学生信息”静态文本。
(7)选中编辑框,同样当鼠标指针为时,在对话框中按下鼠标左键不放,然后拖动鼠标到一定位置松开鼠标,则在对话框中出现控件。鼠标右键选中
,在弹出菜单中选中“属性”项,则弹出“EditProperties”对话框,如图7-15所示。图7-14文本属性对话框属性修改图7-15“EditProperties”对话框General选项提示:编辑框属性对话框有三个选项,分别为“General”、“Styles”(见图7-16)和“ExtendedStyles”。分别对编辑框的标识、可见性、边框风格、文本风格等进行设置。
“General”中规定了该控件的ID号,用户可以手动更改或使用默认的ID。在这里使用默认的ID。图7-16“EditProperties”对话框Style选项提示:“Style”中规定了该控件的常用风格。下面介绍一些常用选项:
①Aligentext:规定了文本在编辑框中显示的对齐方式,默认为Left左对齐方式,在下拉列表中可选择“Right”右对齐,“Center”居中方式。
②“Multiline”:允许多行输入。
③“Verticalscroll”:当文本行数超过当前可显示范围,增加垂直滑动条。
④“Border”:规定了编辑框的边界属性,选中编辑框有边界,不选,则没有边界。
⑤“Password”:当用户需要输入口令时为掩盖输入文本而选择显示输出为“*”时使用。⑥“Read-only”:默认方式下,显示的文本是可以编辑的,选中此项,文本为只读属性,不可更改。
(8)使用同样的方法,建立另外两个编辑框,ID分别为ID_EDIT2和ID_EDIT3。
提示:ID_EDIT3的“Style”选中“Multiline”、“Verticalscroll”。
(9)在控件工具栏中选择,当鼠标指针为时,在对话框中按下鼠标左键不放,然后拖动鼠标到一定位置松开鼠标,则在对话框中出现控件。鼠标右键点击,在弹出菜单中选择“属性”,弹出“RadioButtonProperties”对话框,如图7-17所示。图7-17“RadioButtonProperties”对话框在“标题”右边的编辑框中输入“男”,不更改ID。
(10)同样的方法,增加另一个单选框控件,标题为“女”。
(11)在控件工具栏中选择,当鼠标指针为时,在对话框中按下鼠标左键不放,然后拖动鼠标到一定位置松开鼠标,则在对话框中出现控件。鼠标右键点击,在弹出菜单中选择“属性”,弹出“ComboBoxProperties”对话框,如图7-18所示。图7-18“ComboBoxProperties”对话框General选项提示:组合框属性对话框有四个选项,分别为“General”、“Data”、“Styles”和“ExtendedStyles”。分别对编辑框的标识、数据、边框风格和进展风格等进行设置。
“General”中规定了该控件的ID号,用户可以手动更改或使用默认的ID。在这里使用默认的ID。
(12)选择“Data”选项,如图7-19所示,可以输入组合框中的列表项,如图7-20所示。图7-19“ComboBoxProperties”对话框Data选项图7-20在“Data”选项中增加列表项注意:为组合框增加列表项时,每增加一项后按下键盘“Ctrl+enter”键进行回车换行。当输入完毕后,按回车键直接退出。
(13)在控件工具栏中选择复选框,当鼠标指针为时,在对话框中按下鼠标左键不放,然后拖动鼠标到一定位置松开鼠标,则在对话框中出现控件。鼠标右键点击,在弹出菜单中选择“属性”,弹出“CheckBoxProperties”对话框,如图7-21所示。图7-21“CheckBoxProperties”对话框在标题中输入“班干部”,不改变ID。
(14)用同样的方法,再添加一复选框,标题名为“学生会干部”。
(15)现在需要的控件都已添加完毕,整理这些控件,对布局进行布置,结果如图7-22所示。
注意:ID_EDIT1与姓名对应;ID_EDIT2与学号对应;ID_EDIT3与学生信息对应。
界面仍然不美观,希望各控件的布置能横平竖直,下面对控件位置进行调整。图7-22布置控件布局
(16)按下键盘“Ctrl”键,配合鼠标左键选中“姓名”、“学号”、“其他”和“学生信息”四个静态文本框后,选中工具栏中
栏,在其下拉菜单中,选择“Align”,在下级菜单中选择“Left”。这样这四个文本框的左边已经对齐,如图7-23所示。
提示:在“Align”中有关于“Left”(左对齐)、“Right(右对齐)”、“Top(上对齐)”和“Bottom(下对齐)”的选项,选中表示控件外框边界的对齐方式。
(17)采用提供的对齐方法,对界面进一步进行对齐方式的布置,如图7-24所示。图7-23左对齐静态文本框图7-24用户自定义对话框界面7.2.8对话框的编程
前面已经为对话框添加了控件,在程序运行中我们仍然无法看到对话框,无法对对话框界面进行操作。为了使对话框工作起来,用户和对话框实现交互功能,需要对对话框进行编程。
下面我们就为例7-1添加消息处理函数,让对话框工作起来。
【例7-3】
为例7-1在菜单栏中增加一个“显示对话框”按钮,下拉子菜单为“显示”。选中“显示”,弹出用户自定义对话框。在对话框中进行相应信息的输入,选择OK按钮,在“信息”对应的文本框中显示输入的学生信息。其操作步骤如下:
(1)打开工程文件“chap6_1”。
(2)在项目工作区中选择选项卡,展开文件夹,鼠标左键双击。
(3)在右边编辑区中,手动添加新的主菜单栏按钮“显示对话框”,快捷键定义为“Alt+D”,如图7-25所示。
(4)在其下拉菜单中建立一个名为“显示”的子菜单项,其ID定义为“ID_SHOWDIALOG,”快捷键定义为“Alt+X”。
(5)回到项目工作区,按下键盘“Ctrl+w”,弹出“MFCClassWizard”对话框,会自动弹出一个“AddingaClass”(增加类)对话框,选择“Creatanewclass”选项,然后点击“OK”按钮,如图7-26所示。图7-25“MenuItemProperties”对话框图7-26增加类对话框提示:之所以弹出“增加类”对话框,是因为用户为程序增加了一个对话框,一个对话框就对应一个派生于CDialog的新子类。
(6)在弹出的“NewClass”(新类)对话框中,在“Name”处输入“CMydialog”,然后点击“OK”按钮,如图7-27所示。
提示:①“Name”处输入用户新增对话框对应的子类名称。
②“Baseclasss:”新增类的基类,其下拉菜单提供了多种备选类。此处选CDialog。
③“DialogID:”新对话框类对应的对话框ID号。
(7)在“MFCClassWizard“中的“Classname”列表中,出现了“CMydialog”类,如图7-28所示。图7-27“NewClass“对话框图7-28“Classname”中增加的“Cmydialog”类
(8)在“Classname”中选择“CChap6_1View”;在“ObjectIDs”中选择“ID_SHOWDIALOG”;在“Messages”中选择“COMMAND”。双击,在“Memberfunctions”中出现“OnShowdialogON_ID_SHOWDIALOG:COMMAND”成员函数,如图7-29所示。
(9)点击按钮。回到主窗口,在项目工作区中自动出现了成员函数。
(10)选择,用鼠标右键单击,在弹出菜单中选择,弹出“AddMemberVariable”对话框,如图7-30所示。在处输入“CMydialog”,在
处输入mydialog,点击“OK”按钮。图7-29添加OnShowdialog成员函数图7-30添加CMydialog变量提示:这样就建立了一个名为mydialog的CMydialog类保护型对象。
(11)在项目工作区中选择,双击,光标移动到该函数体起始位置,修改其内容:
voidCChap6_1View::OnShowdialog()
{
//TODO:Addyourcommandhandlercodehere
mydialog.DoModal();//显示对话框
}
(12)运行该程序,选择“显示”菜单项,结果如图7-31所示。图7-31选择“显示”运行结果到这里,已经可以看到用户定义的对话框了,下面增加代码实现用户与对话框的交互,这些操作都在对话框对应的类CMydialog中完成。
(13)按下“Ctrl+W”键,打开“MFCClassWizard”对话框,选择“MemberVariables”选项卡,在“Classname”中选择“CMydialog”,在“ControlIDs”中出现了用户对话框中控件的ID,如图7-32所示。
(14)选中“IDC_CHECK1”,点击“AddVariable”按钮,弹出“AddMemberVariable”对话框,如图7-33所示。图7-32成员变量选项图7-33“AddMemberVariable”对话框提示:
①“Membervaiablename”:用户定义的该控件的变量名。
②“Category”:该变量对应于控件的哪一分类。一个控件一般可以作为“value”(变量)和“Contrl”(控件)两类。
③“Variabletype”:该变量的数据类型。
(15)为控件增加变量名,如表7-1所示。
(16)选择“MessageMaps”,增加消息,如表7-2所示。
(17)在项目工作区的“CMydialog”中,已经自动添加用户定义的成员函数与成员变量,如图7-34所示。
图7-34用户增加的成员变量和成员函数
(18)选择、用鼠标右键单击,在弹出菜单中选择“AddMemberVarialbe…”,增加成员变量,如表7-3所示。(19)修改CMydialog的构造函数内容,如下所示:
CMydialog::CMydialog(CWnd*pParent/*=NULL*/)
:CDialog(CMydialog::IDD,pParent)
{
//{{AFX_DATA_INIT(CMydialog)
m_ban=FALSE;
m_xuesheng=FALSE;
m_xueyuan=_T("");
m_num=_T("");
m_info=_T("");
m_name=_T("");
sex="";
other="";
//}}AFX_DATA_INIT
}(20)鼠标双击“OnCheck1”成员函数,修改其函数体,如下所示:
voidCMydialog::OnCheck1()
{
//TODO:Addyourcontrolnotificationhandlercodehere
other=other+"班干部";
}
(21)鼠标双击“OnCheck2”成员函数,修改其函数体,如下所示:
voidCMydialog::OnCheck2()
{
//TODO:Addyourcontrolnotificationhandlercodehere
other=other+"学生会干部";
}(22)鼠标双击“OnRadio1”成员函数,修改其函数体,如下所示:
voidCMydialog::OnRadio1()
{
//TODO:Addyourcontrolnotificationhandlercodehere
sex="男";
}
(23)鼠标双击“OnRadio2”成员函数,修改其函数体,如下所示:
voidCMydialog::OnRadio2()
{
//TODO:Addyourcontrolnotificationhandlercodehere
sex="女";
}(24)鼠标双击“OnOK”成员函数,修改其函数体,如下所示:
voidCMydialog::OnOK()
{
//TODO:Addextravalidationhere
UpdateData(TRUE);
m_info="姓名"+m_name+"\r\n"+"学号"+m_num+"\r\n"+"性别"+sex+"\r\n"+"学院"+"\r\n"+m_xueyuan+"其他"+other+"\r\n";
UpdateData(FALSE);
// CDialog::OnOK();
}
注意:CDialog::OnOK();前用户添加了一个注释符“//”,使得该函数失效。如果不使其变为注释,按下OK后该对话框会自动关闭。
(25)运行程序,选择“显示”菜单项,在对话框中输入相应信息,点击“OK”按钮,结果如图7-35所示。图7-35例7-2运行结果本章学习了对话框及常用控件。读者重点掌握常用控件的绘制、属性以及对话框的编程方法。在实际编程中,除了正确设计程序语言外,还应注意合理利用系统提供的属性选项配合使用,使得界面的设计方便、快捷、美观。以下是一具体实例,在对话框模式下实现一个简单的计算器,能进行加、减、乘、除运算。
其操作步骤如下:
(1)打开VC++6.0,选择“文件/新建”命令,弹出“新建”对话框,选择“工程”选项,选择“MFCAppWizard(exe)”,在工程处输入工程名“lianxi7_1”,如图7-36所示。图7-36“新建”对话框
(2)点击“确定”按钮,弹出“MFCAppWizrd–Step1”对话框中,选择“基本对话”应用程序类型,点击“完成”按钮,如图7-37所示。
(3)为对话框添加3个静态文本,标题分别为“操作数1”,“操作数2”,“结果”。
(4)为对话框添加3个编辑框,在属性中更改ID为用户自定义ID,如表7-4所示。图7-37选择“基本对话框”应用程序类型
(5)为对话框添加4个单选框,在属性中更改ID为用户自定义ID并设置标题,如表7-5所示。
(6)为对话框添加1个按钮,在属性中更改标题为“=”,ID为“IDC_BUTTON1”。
(7)布置用户界面,如图7-38所示。
(8)按下“Ctrl+W”键,弹出“MFCClassWizard”对话框,选中“MemberVarialbes”选项,如图7-39所示。
(9)选择“IDC_NUM1”,点击右边“AddVariable”按钮,弹出“AddMemberVariable”对话框,在其中定义成员变量名为“m_num1”,“Category”为“Value”,“VariableType”下拉列表中选择“float”,如图7-40所示。图7-38lianxi7_1界面布置图7-39lianxi7_1的成员变量图7-40为“IDC_NUM1”添加成员变量
(10)点击“OK”按钮。
(11)使用同样的方法,为“IDC_NUM2”添加变量,如图7-41所示。
(12)为“IDC_RESULT”添加变量,如图7-42所示。
(13)选中“MessageMaps”选项,在“ObjectIDs”中选中“IDC_BUTTON1”,在“Messages”中用鼠标左键双击“BN_CLICKED”,则弹出“AddMemberFunction”对话框,点击“OK”按钮确认,如图7-43所示。图7-41为“IDC_NUM2”添加成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智能橱柜系统研发与应用合同3篇
- 2025年科技园区租赁与科技成果转化承包合同范本3篇
- 二零二五年度航空航天器维修服务合同书3篇
- 二零二五年度车辆租赁与维修保养一体化服务合同8篇
- 2025标准苗木采购合同
- 2025年度钢构厂房项目安全文明施工合同范本2篇
- 2025年食堂劳务外包合同:食品安全与营养健康保障协议3篇
- 2025年度大学生实习合同范本:能源行业实习生职业发展与实习就业协议4篇
- 2025公对私借款合同协议书模板
- 2025新个人房屋装修合同
- 2025年上半年长沙市公安局招考警务辅助人员(500名)易考易错模拟试题(共500题)试卷后附参考答案
- 重大事故隐患判定标准与相关事故案例培训课件
- 2024年度节后复工建筑施工安全培训交底
- 药物制剂工(三级)理论试题题库及答案
- 高强度间歇训练(HIIT)对代谢健康的长期影响
- ICU患者导管留置登记表
- 中建商务工作指南手册
- 耳鼻咽喉:头颈外科疾病诊断流程与冶疗策略
- 贵州省2023年中考英语真题
- 个人借条电子版模板
- 中国思想史 马工程329P
评论
0/150
提交评论