VC-MFC编程基础(2)

2019-05-18 19:37

CMDIFrameWnd、CMDIChildWnd和Cdialog,用于支持三种标准框架窗口:

■单文档(Single document)窗口

由CframeWnd类支持。文档窗口主要由边框、标题栏、菜单栏、工具栏、编辑区等组成。

■多文档(Multiple documents,MDI)窗口

由多个文档窗口组成,其中第一个打开的是主框架窗口,由CMDIFrameWnd类支持,其他为子框架窗口,由CMDIChildWnd类支持。子框架窗口没有菜单栏和工具栏,它们共享主窗口的菜单栏和工具栏。

■对话框(Dialog)

对话框是一种特殊类型的窗口,它没有菜单栏和工具栏,且一般不能改变窗口的大小。对话框由Cdialog类支持。

2. 对话框与控件

对话框是应用程序用于显示或提示,并且等待用户输入信息的弹出式窗口。对对话框的操作一般是通过在对话框上添加控件来实现的。对话框与控件密不可分,在每个对话框内都有一些控件,对话框依靠这些控件与用户交互。可以说,对话框是Windows应用程序中最重要的用户界面元素,是应用程序与用户进行交互的主要部件。

Windows把主要设置在对话框上的一些标准的图形界面元素定义为“控件”(Control),如文本框、列表框、命令按钮、复选框等,它们中的大多数可以捕获事件并向对话框发送消息。控件实际上也都是窗口,所有的控件类都是CWnd类的派生类。控件通常是作为对话框的子窗口而创建的。 §2 使用MFC进行Windows编程

VC++把开发一个应用程序的过程称之为“工程”(Project)。开发一个Windows应用程序的工程远比开发一个控制台应用程序工程要复杂得多,工作量也要浩大得多。好在VC++提供了一组强大的MFC工程的开发工具。

开发一个MFC工程通常有四个工程步骤: Step.1建立工程架构 Step.2设计图形用户界面

Step.3设计对象的事件驱动程序,编写相关代码 Step.4工程的编译、链接和运行

下面通过一个简单的编程实例(Case1)“计算圆的周长和面积”来介绍这四个步骤。

2.1建立工程架构

建立工程架构(skeleton),类似于一项工程的总体设计,它需要确定工程的类型,根据工程类型创建并组织各种基本组件,包括:所有的类、一些基本对象、工程所需的必要资源等。从而为工程搭建起一个完整的架构。

所谓工程类型,是以工程采用什么框架窗口作为主窗口来界定的。MFC支持三种标准工程类型:

■单文档(Single document)工程 以单文档窗口作为工程主窗口。 ■多文档(Multiple documents)工程 以多文档窗口作为工程的主窗口。 ■对话框(Dialog based)工程

以对话框作为工程主窗口。这是最紧凑、最简单的一种标准工程架构。

VC++为用户建立工程架构提供了一个强大的工具——MFC AppWizard(MFC应用程序向导)。

本实例采用的是对话框架构。 操作步骤

?1. 选择VC6主窗口菜单栏中的“文件|新建”菜单项,弹出一个如图3所示的“新建”对话框。

?2. 在对话框中选择“工程”(project)选项卡。选择MFC AppWizard[exe]项,在对话框右部输入工程的路径和工程名,然后单击“确定”按钮。

VC++以文件夹方式管理工程,如图3所示,case1是D:\\CPPMFC_PRJ\\下的一个文件夹,该工程的各种文件都将存放在这个文件夹中。

?3. 在系统弹出如图4所示的“MFC应用程序向导-步骤1”对话框中进行工程类型选择。先选择单选按钮“Dialog based”(对话框工程),再单击“下一个”按钮。

?4. 依次选择系统弹出的图5至图7(步骤2至步骤4)中对话框的选项,用户可以先全部采用默认选择,然后在编程过程中再按需要修改。单击图7中的“完成”按钮,或者在出现其中任一个对话框时单击“完成”按钮,表示默认其他选项,系统就不再弹出其他对话框。

?5. 系统弹出如图8所示的“新建工程信息”对话框,其中列出前面所做的选择内容,单击“确定”按钮。

至此,工程架构创建完成,系统回到VC6的集成开发环境,如图9所示。从该窗口的左窗格中可以观察到MFC AppWizard为一个对话框工程的架构创建的所有组件:

■CCase1Dlg等三个类

其中最主要的是CCase1Dlg类(工程case1的对话框类),它由Cdialog类派生。 ■case1Dlg.h等四个头文件

case1Dlg.h同样是最主要的一个头文件,它包含了CCase1Dlg类的声明。 ?选择左窗格的“File View”(文件视图)选项卡。双击case1Dlg.h,在右窗格会列出case1Dlg.h的程序清单。

■case1Dlg.cpp等四个C++源程序文件

case1Dlg.cpp不仅是最重要的源程序文件,而且是整个工程的核心。用户的编程工作主要是在这个文件上完成,它将包含实现具体应用功能的全部代码。

case1.cpp是工程的启动程序,类似于非Windows应用程序中的main函数。 ■另外,MFC AppWizard为工程生成了一个对话框窗体、一个工程图标等图形资源。见图。

至此,虽然一行代码都没有编写,但这个应用程序架构是可以运行的程序。进行编译链接后,其运行结果如图10所示。以这种方式建立的应用程序,其主窗口即是对话框。

2.2 设计图形用户界面

1.设计工具和设计方案

在完成了对话框工程架构的创建后,VC6窗口上弹出了MFC的对话框编辑器。 对话框编辑器主要用于创建、编辑对话框窗口,向对话框窗体上添加控件和调整布局。对话框编辑器主要包括如下组件:对话框窗体、控件箱、调整(布局)工具栏以及对话框和控件的属性对话框。

对话框窗体是MFC给每个工程默认生成的一个图形资源,它是CCase1Dlg类的图形化。所谓窗体即窗口毛坯,是还未完全成形的初始窗口,它如同一块“画布”,在它上面可以画上各种控件来构成工程所需的实际窗口。窗体的标题栏上显示的是本工程的名字,窗体上可设置网格,用于安排控件的位置和大小。在程序运行时,网格会自动消失。

MFC设计有20多个标准控件。控件箱是存放控件类的容器,这些控件类都以图标式按钮表示。开发人员可利用控件箱在对话框上创建各种所需的控件。控件箱中的控

件类从上到下依次是:

控件选择按钮 静态图片 静态文本框 编辑框 框架 命令按钮 复选框 单选按钮 组合框 列表框 水平滚动条 垂直滚动条 旋转按钮 进展条 滑块 热键 列表视图 树状视图 标签 动画 复合编辑框 日期选择 日历 IP地址 用户定制工具 扩展组合框

往对话框中添加控件,即在工程中创建了相应的控件对象,这可通过可视化操作实现:

■用鼠标按住控件箱上所选中的控件图标,拖到对话框中合适的位置。或 ■先单击控件箱上所选中的控件图标,然后移动鼠标到对话框中合适的位置。 添加到对话框上的控件,可以移动、复制、调整或删除,也可拖动鼠标缩放控件的大小。

对于本实例,可在对话框上建立如下控件: ■1个编辑框:用于用户输入半径值;

■5个静态文本框(静态文本框只能显示文本而不能输入文本),其中: 2个静态文本框分别用于显示圆周长和圆面积,

其余3个静态文本框分别用于对上述三个文本框进行文字说明。

■2个命令按钮,“确定”和“退出”: 前者用于确定输入值,计算圆周长和圆面积,然后把结果显示在对应的输出框上;后者用于结束程序的执行。

2. 操作步骤

(1)设置主窗口的属性值

?单击对话框窗体,使其成为当前窗口(周围出现8个小方块)。

?从VC6窗口的菜单栏上的“查看”菜单中选择“属性”选项,或者用鼠标右击窗体,从弹出的快捷菜单中选择“属性”,都将弹出图11所示的“对话框属性”对话框。

?在“常规”(General)选项卡下:

该对话框对象的ID默认为:IDD_CASE1_DIALOG 将标题值设置为:计算圆周长和圆面积 单击“字体”按钮,进行字体属性的设置 其余属性采用默认值。 关闭属性对话框。

※上述设置在CCase1Dlg类的代码中立即被反映。

(2)添加编辑框控件

?用鼠标把控件工具箱上的编辑框拖到对话框窗体的合适位置,就建立了一个编辑框控件。

?用鼠标右击该编辑框,从弹出的快捷菜单中选择“属性”,弹出如图12所示的编辑框属性对话框。

?该编辑框对象的ID默认为:IDC_EDIT1

在“样式”(Styles)选项卡中设置相关属性值为:“靠左”(Left)和“垂直居中”(Center)。

其余属性采用默认值。 关闭属性对话框。 (3)添加静态文本框控件

?用鼠标把控件工具箱上的静态文本框拖到对话框窗体的合适位置,就建立了一个静态文本框控件。用同样的操作(或复制)建立其他四个静态文本框。

②用鼠标右击静态文本框,从弹出的快捷菜单中选择“属性”,弹出如图12所示的静态文本框属性对话框。

可对这5个静态文本框的属性值设置如下:

ID 标题 其他属性 IDC_STATIC1 输入半径: 居中,垂直居中 IDC_STATIC2 圆周长 居中,垂直居中 IDC_STATIC3 圆面积 居中,垂直居中

IDC_STATIC4 默认 靠左,垂直居中,Client edge


VC-MFC编程基础(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:管理学概论作业2016春

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: