2.1 VC++开发系统简介

2.1.1 VC6.0系统介绍

VC6.0是一个可视化的软件开发框架,利用其中的应用程序创建向导功能,可以帮助快速创建图形软件。在Windows系统中安装VC6.0后,桌面上会出现VC6.0的快捷方式,打开后软件界面如图2.1-1所示。

图2.1-1 VC6.0界面

为了快速创建软件,可以使用VC6.0的应用程序创建向导来实现。在菜单栏中选择“文件”→“新建”命令,打开“新建”对话框,如图2.1-2所示。

图2.1-2 “新建”对话框

在“工程”选项卡中,选中MFC AppWizard(exe)选项,在“工程名称”文本框中输入要创建的程序的名字,例如CGTest001,单击“确定”按钮,VC6.0的创建向导开始自动创建应用程序,并弹出一系列的对话框进行程序设置。其中,在步骤1的对话框中,在“您要创建的应用程序类型是:”的选项中,选择“单文档”单选按钮,然后单击“下一步”按钮,进行下一步的设置,如图2.1-3所示。

图2.1-3 程序创建向导步骤1

在应用程序向导创建的其他步骤中,接受默认的选项,并单击“下一步”按钮,在最后一步,可以看到向导为应用程序自动创建的类及类文件,如图2.1-4所示。

图2.1-4 程序创建向导步骤6

创建好的应用程序开发平台如图2.1-5所示。在左侧的工作空间窗口中,可以看到已经创建的程序框架对应的类、资源和文件。

图2.1-5 程序框架

在菜单栏中选择“组建”→“执行[CGTest001.exe](Ctrl+F5)”命令,编译并打开创建好的应用程序,软件界面如图2.1-6所示。这是一个标准的Windows风格的应用程序,上面有菜单和默认的工具栏,中间的空白区域即为绘图区域(或者称为视图窗口)。

图2.1-6 程序软件界面

软件界面中的所有内容,例如菜单、工具条、状态栏、对话框以及绘图窗口等,在应用程序中都有对应的资源、类和类文件,而且是一一对应的关系。其中绘图区域对应的是应用程序中的视图类,图示中的视图类是CCGTest001View,对应的文件是头文件CGTest001View.h和源文件CGTest001View.cpp,如图2.1-7所示。

图2.1-7 视图类CCGTest001View

应用程序中其他的类及文件,如CAboutDlg、CCGTest001App、CCGTest001Doc和CMainFrame等,是创建软件程序框架必须具备的部分,但在实现计算机图形原理算法时用不到这些类及文件,不用考虑其实际意义。

在默认状态下,视图窗口的左上角是绘图区域坐标系的原点,X轴向右,Y轴向下,如图2.1-8所示。在实现计算机图形学的算法时,以显示器的像素点作为长度单位。

图2.1-8 绘图区域坐标系

2.1.2 VC++相关设计流程

在VC6.0中,可视化窗口上的任何操作,例如,单击菜单里的菜单项、单击工具栏里的工具图标以及在绘图区域单击、右击、移动鼠标或者双击等,都会被视为一种消息(Message),如果需要对该消息进行相应的响应,则进入对应的消息函数中进行处理。例如,在绘图区域的任意位置单击,就会触发视图类CCGTest001View中的WM_LBUTTONUP这个消息,如果对该消息进行响应,则进入对应的消息函数OnLbuttonUp()中进行相应处理,上述过程的消息函数操作如图2.1-9所示。在开发环境的菜单栏中选择“查看”→“建立类向导”命令,打开类向导(MFC ClassWizard)对话框,切换到消息映射(Message Maps)选项卡,在类名(Class Name)下拉列表框中选择视图类(CCGTest001View),对象标识(Object IDs)列表框中选择视图类名本身,在消息(Messages)列表框中选择WM_LBTTONUP选项,双击或者单击Add Function按钮,在视图类里增加鼠标左键单击的消息函数OnLbuttonUp(),在类头文件CGTest001View.h中可以看到声明的该函数名,在源文件CGTest001View.cpp中可以看到该函数体。

图2.1-9 声明消息函数

假如,要求单击时弹出一个对话框,则OnLButtonUp()函数中的代码为:

编译并运行增加代码后的应用程序,打开软件,在绘图区域单击,弹出窗口,如图2.1-10所示。鼠标其他操作的函数设置和上述方法类似。

图2.1-10 消息函数操作

VC6.0中的所有资源(菜单、工具栏、对话框、图标等)都有唯一的标识符号,可以在对应的资源属性窗口中设置相应的属性,如图2.1-11所示。和鼠标单击消息函数设置方法类似,单击菜单或者工具条也触发相应的消息函数,一般情况下,单击菜单和工具条是为了实现一项新的功能。

图2.1-11 菜单属性窗口

如果要增加菜单栏或者工具条里的项目,可以双击空白菜单项或者工具条项,打开要增加的项目的属性对话框,输入唯一标识符和标题名称即可。如图2.1-12所示为增加一个画线的工具条。

图2.1-12 增加工具条

表2.1-1所示为常用的操作命令,在编译、调试或者执行应用程序时会经常用到。

表2.1-1 常用的操作命令

在VC6.0中,向图形设备(如显示器和打印机)的绘图和文本输入等操作是通过设备的抽象接口类CDC来实现的,在视图类中,有一个专门用于在设备中显示内容的函数OnDraw(CDC ∗ pDC)。例如,在绘图区域内写一行文字,直接在该函数中写代码,如图2.1-13所示。

图2.1-13 OnDraw函数中写绘图代码

使用VC6.0编程时,应注意以下事项:

(1)每行代码必须以英文分号“;”结束;

(2)代码中的变量和函数名称等的字母区分大小写;

(3)在其他函数里调用OnDraw()时,可通过Invalidate()函数实现;

(4)为了交互,需要设计交互步骤,可以采用状态标识符号,如flag=0,1,2表示不同的状态或者操作步骤。