1.1 功能需求
1)类似 visio. 能完成矢量图形的创建、保存、读取功能。
2)除了图形界面操作,还可以通过命令脚本操作。例如下面的脚本创建一个园,然后对其进
行放大。CreateCircle A Center=0,0|Radius=10 Zoom A 1.5 令脚本的格式可以自己确定
3) 连线功能。在两个对象间连线后,移动某个对象,连线会跟着移动。
可以通过 VC 的 MFC 设计软件的界面。可以使用使用 MFC 中的 CDC 类实现图形的绘制作。
CDC 对象封装了我们可以利用 Windows 系统绘图功能的设备无关的几乎全部绘图功能。可以实
现所需求的几种功能。软件设计开发是可行的。
MFC的CDC类对设备描述表和GDI 函数进行了全面的封装,使这两者的使用更加方便。CDC 类是一个通用的类,可以从它派生出特定类型的DC子类。
1、CDC 类的成员函数
由于DC 与屏幕绘图及文本显示操作密切相关,CDC 类的成员函数主要包括以下几类:
初始化函数,比如为指定的设备创建设备描述符表等。
设备描述符表函数,比如保存或恢复DC的状态等。
绘图及其相关函数,比如设置绘图前景颜 {MOD}、背景颜 {MOD}、绘图工具选择、图形绘制等。
文本与字体函数,比如文本输出、字体信息的取得等。
坐标与映射函数,比如设置映射方式、各种坐标的转换等。
2、几种派生的CDC类
几种派生的CDC类如表7-2所
表7-2几种派生的CDC类
类名
说明
CClientDC
在相应除WM_PAINT消息之外的消息处理函数中,提供窗口客户区的设备描述环境。
CMetaFileDC
代表Windows图元文件的设备描述环境。在创建与设备无关的并且可以回放的图像时使用这个类型的DC。
CPaintDC
在OnDraw()函数中使用的窗口用户区的设备描述环境。在MFC中用OnDraw()来处理WM_PAINT消息。
CWindowDC
提供在整个窗口内(不只是用户区)绘图的设备描述环境。
CPaintDC是所有CDC类中最常用的一个类,它代表了应用程序窗口的客户区,它只能使用在CView类的OnDraw函数中。OnDraw函数的声明为:
OnDraw(CDC*pDC);
对应用程序窗口的客户区进行绘图的所有代码都必须写在这个函数中。应用程序窗口在每次创建及需要刷新时就会产生WM_PAINT消息,如用户区移动或显示,用户窗口大小改变,程序通过滚动条滚动窗口,窗口被另一个窗口覆盖的恢复,还有下拉式菜单关闭等,这些情况下就会发送WM_PAINT消息。系统接收到这个消息就会自动调用OnDraw函数。这个函数的参数pDC就是指向CPaintDC对象的指针,在OnDraw的函数体中,就可以通过这个指针来使用DC类的成员函数进行绘图操作了。