(画图vc程序设计)

合集下载

vc++画图板程序总结

vc++画图板程序总结

VC++程序设计实验报告一、实验目的掌握MFC编程二、实验内容用MFC向导创建单文档应用程序,实现一个简单的画图程序。

●使用C++语言实现●使用VS2010集成开发环境开发●使用MFC应用程序开发框架三、实验步骤●基本功能描述1. 打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、曲线、矩形及椭圆,线宽选项,有1-5可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。

2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。

●设计思路1. 对需要用到的变量进行初始化。

2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。

选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。

3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。

4. 选择图形或其它属性,可进行下一次绘制。

●软件设计A 设计步骤1.创建单文档创建一个MFC AppWizard[exe]工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。

创建成功后,系统自动生成相应的类,如图3所示。

图1 创建工程图2 创建单文档图3 生成类2.编辑菜单打开资源视图中的Menu-IDR_MAINFRAME添加需要的菜单项,如图4所示;并在菜单的属性中设定好所对应的ID,如图5所示,各项菜单对应的ID如表1所示(其中线宽菜单为弹出菜单,只需在菜单项目属性中的弹出选项前打勾即可,分隔线亦只需在菜单项目属性中选中分隔符选项即可)。

VC++绘图编程

VC++绘图编程

8
绘制线条
移动画笔位置 成员函数MoveTo() 用CDC成员函数 成员函数 pDC->MoveTo(x1,y1) ; 绘制直线 成员函数LineTo() 用CDC成员函数 成员函数 pDC->LineTo(x2,y2) ; 演示程序: 使用 使用CPen画线 画线.avi> 演示程序: <使用 画线
演示程序: 演示程序:画线函数处理.avi
11
画光栅点
pDC->SetPixel(x,y,(COLORREF)x+y);
COLORREF SetPixel( int x, int y, COLORREF crColor );
Parameters x
Specifies the logical x-coordinate of the point to be set.
演示程序:图形操作/画图形 演示程序:图形操作 画图形 Program 第三章图象编程 第三章图象编程.cpp-OnDrawGraph () -
14
写文字
pDC->TextOut(100,200,strText,lstrlen(strText);
virtual BOOL TextOut( int x, int y, LPCTSTR lpszString, int nCount ); Parameters x
用笔( 对象) 用笔(CPen对象)绘制宽度为 点红色的实线 对象 绘制宽度为5点红色的实线
void CImageView::OnDraw(CDC* pDC) { … CPen penBlue(PS_SOLID,5,RGB(255,0,0)),*pOldPen; pOldPen=pDC->SelectObject(&penBlue); pDC->MoveTo(20,10); pDC->LineTo(200,100); pDC->SelectObject(pOldPen); penBlue.DeleteObject(); }

VC图形界面程序设计

VC图形界面程序设计
– 将基于控制台已经设计完善的这个类 comFinal移植到Windows程序中,并为它设计 对话框,并实现数据输入、输出功能。
Hale Waihona Puke 1. 在应用程序框架中包含并修改自定义类 【例1】 用VC++向导建立一个应用程序框 架,然后将先前建立的comFinal类的上 述2个文件添加到应用程序框架中。 • 过程如下
2. 在事件函数中操作类对象
• 应用程序框架中的每个类就像一个容器, 可以在其中包含其他类的对象,即可用 其他类定义它的对象成员。 • 如在例1建立的框架程序中,可以在应用 程序类MyProject、对话框类 MyProjectDlg中定义comFinal类的对 象,并通过对话框类的事件函数调用自 定义类的成员函数,实现需要的程序功 能。
(2) 在自定义类的源文件中增加对 stdafx.h头文件的包含
在comFinal.cpp文件中增加stdafx.h头文件包 含 /*comFinal.cpp*/ #include "stdafx.h" //不包含该头文件 将产生编译错误 #include "comFinl.h"
(3) 编译程序,这次不会有任何错误, 运行它将见到MFC默认的框架程序 界面
3.修改自定义类
• 现在来看看在自定义类的源程序中不包含 stdafx.h头文件会产生的问题。 (1)编译MyProject,将会见到如下错误信息:
– fatal error C1010: unexpected end of file while looking for precompiled header directive Chemistry.cpp – 这些错误指出在编译comFinl.cpp等源文件 时,没有找到需要的预编译头文件stdafx.h, 应该在comFinl.cpp中包含stdafx.h头文件。

计算机图形学 使用VC开发绘图程序的基本方法

计算机图形学  使用VC开发绘图程序的基本方法

七、思考题(尽量做,计入成绩) :
1、为什么要用 CDC 定义一个对象来作图? Windows 使用与设备无关的图形设备环境进行显示 。MFC 基础类库定义了设备环境对象类----CDC 类。 因为使用的是 mfc,如果是 sdk 的话就得用 dc,这个 cdc 想当是一个给设备画画的笔。 2、如果要绘制多条直线,应该如何编程?
4、 VC 中编程环境中,工程(project)是什么意义?为什么要用 project 的方式管理代码?
Project 文件的扩展名是 dsp,这个文件中存放的是一个特定的工程,也就是特定的应用程序的有关信息, 每个工程都对应有一个 dsp 类型的文件。 clw 为扩展名的文件是用来存放应用程序中用到的类和资源的信 以 息的,这些信息是 VC 中的 ClassWizard 工具管理和使用类的信息来源。 因为用 project 的方式管理代码比较方便,可以看成是在一个文件夹下进行的。
3、 在 MyView.cpp 文件的 OnDraw 函数中加入如下代码。 pDC->MoveTo(100,100); pDC->LineTo(200,200); CPen *pOldPen; CPen dashPen; dashPen.CreatePen(PS_DASH,1,RGB(255,0,0)); pOldPen = pDC->SelectObject(&dashPen); pDC->LineTo(300,100); pDC->SelectObject(pOldPen); pDC->LineTo(400,200);
实验(No. 1
)题目:使用 VC 开发绘图程序的基本方法
实验目的及要求:
一、实验目的:
编写一个具有一定功能的 MFC 类库应用程序 (引入简单的视图/文档概念) 掌握 GDI 画图的基本方法, , 并调用系统函数画直线。

VC课程设计——VC基本绘图文档

VC课程设计——VC基本绘图文档

VC基本绘图文档[键入作者姓名]VC基本绘图文档设计一个矢量图形绘制程序一、运行环境:Microsoft Visual C++ 6.0二、目标与任务:1.使设计的程矢量绘制图形序具有画点、画线、画多边形、画矩形的功能;2.其中所绘制的点、线、多边形具有保存的功能,并且能保存入数据库,数据库采用的access,文件名为shp.mdb,在设计的程序中使用ODBC访问数据库,DSN=shp,无同户名与密码;3.设计的绘图程序能读入数据库中的记录,而且可以通过自己建立的菜单[数据库操作]的子菜单[记录集导出]导出,显示在自己事先设计好的对话框设置中4.建立的[设置]菜单功能,其子菜单有[点的大小]、[线的宽度]功能。

三、程序总体结构图:四、各个功能模块详细设计1.画点画点流程图画点主要代码:2.画线画线主要代码:3.画矩形画矩形主要代码:4.画多边形画多边形的主要代码:五、数据库设计说明1.构造数据库,数据库采用access,.建立数据表,文件名为shp.mdb如下图5.2.创建ODBC数据源Windows中的ODBC组件出现系统的“控制面板”管理工具中,如下图所示:双击ODBC图标,进入ODBC数据源管理器。

然后创建用户用户DNS,过程如下下图:单击“添加”按钮,弹出创建数据源对话框,按下图选择用户所需的驱动程序(如下图):单击“完成”按钮进入指定驱动程序的安装对话框,单击“选择”按钮,将前面创建的数据库调入,结果如下图所示:单击“确定”按钮。

3.在自己的绘图MFC中绑定数据源建立新的类CShpSet类,其基类是CRecordset,单击“OK”,进入选择数据源对话框,按下图进行选择:如下图进入选择数据表对话框,选择自己已经建立过的shp.mdb数据表,如下图所示:单击“OK”,完成绑定数据源。

6.在MFC中建立显示此记录集对话框,其设计如下图所示:添加基于上图对话框的相应的类DisplayDataBaseDlg,其基类是CDlg,用于显示记录集,并建立相应的数据库操作菜单,用来显示记录集。

VC绘图简易教程_4

VC绘图简易教程_4

[学习目标]学会实现简单动画所谓动画,其实是连续显示一系列图形而已。

结合到程序上,我们需要以下几个步骤:1. 绘制图像2. 延时3. 擦掉图像循环以上即可实现动画。

[范例]举一个例子,我们实现一条直线从上往下移动:#include <graphics.h>#include <conio.h>void main(){initgraph(640, 480);for(int y=0; y<480; y++){// 绘制绿色直线setcolor(GREEN);line(0, y, 639, y);// 延时Sleep(20);// 绘制黑色直线(即擦掉之前画的绿线)setcolor(BLACK);line(0, y, 639, y);}closegraph();}再看一个例子,实现一个圆从左往右跳动:#include <graphics.h>#include <conio.h>void main(){initgraph(640, 480);for(int x=100; x<540; x+=20){// 绘制黄线、绿色填充的圆setcolor(YELLOW);setfillstyle(GREEN);fillellipse(x, 100, 20, 20);// 延时Sleep(500);// 绘制黑线、黑色填充的圆setcolor(BLACK);setfillstyle(BLACK);fillellipse(x, 100, 20, 20);}closegraph();}也就是说,移动的间距小、延时短,动画就会越细腻。

但当画面较复杂时,会带来画面的闪烁(怎样消除闪烁是以后的话题)。

[作业]绘制一个沿45 度移动的球,碰到窗口边界后反弹。

[改进]你的程序存在闪烁问题和不平滑看了半天,图形库还有批量画图,改进如下//这样的c底层,也不……,不过不失为初学者的首选#include <graphics.h>#include <conio.h>void main(){//说实话这个库没有自动检测initgraph(640, 480);//开始批量画图BeginBatchDraw();for(int y=0; y<480; ++y){// 绘制绿色直线setcolor(GREEN);line(0, y, 639, y);//继续画图FlushBatchDraw();// 延时单位毫秒,不精准的厉害, 别希望匀速Sleep(10);// 这里用背景色盖住就行cleardevice();}//结束批量绘图EndBatchDraw();closegraph();}#include <graphics.h>#include <conio.h>void main(){initgraph(640, 480);//开始批量画图BeginBatchDraw();for(int x=100; x<540; ++x) //缩小步长{// 绘制黄线、绿色填充的圆setcolor(YELLOW);setfillstyle(GREEN);fillellipse(x, 100, 20, 20);//继续画图FlushBatchDraw();// 延时Sleep(10);// 绘制黑线、黑色填充的圆cleardevice();}//结束批量绘图EndBatchDraw();closegraph();}。

VC单文档中画图

VC单文档中画图
dc.SelectObject(pBrush); 这两行的代码就可以实现这样的效果。
3. 创 建 一 个 对 话 框 ( Setting ) 用 来 设 置 画 图 的 线 宽 。 同 时 在 ResourceView 中添加一个成员变量用来保存线宽。 添加一个静态文本以及一个编辑框。如图
为该对话框添加命令响应 当单击设置的时候,弹出 Setting 对话框对线宽进行设置。当再次打 开线宽设置的时候,保存上次所设置的线宽 void CGraphicView::OnSetting() {
m_nDrawType=3; }
void CGraphicView::OnEllipse() {
// TODO: Add your command handler code here m_nDrawType=4; } 开始画图要为鼠标左键按下和鼠标左键弹起添加 Windows Message Handler
鼠标左键按下去画图时我们要保存一个点。故添加一个成员变量来保 存这个点,并初始化。 CGraphicView::CGraphicView() {
// TODO: add construction code here m_nDrawType=0;//初始化画图类型 m_ptOrigin=0;//初始化鼠标左键原点 m_nLineWidth=0;//初始化线宽 } void CGraphicView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default m_ptOrigin=point; CView::OnLButtonDown(nFlags, point); } 鼠标左键弹起,画图 在前面添加了命令响应,m_nDrawTyoe=1 时,画图为点,2 为直线, 3 为矩形,4 为椭圆。下面,利用 switch 语句进行画图。 void CGraphicView::OnLButtonUp(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CClientDC dc(this);//创建画图 dc 对象

基于VC MFC程序设计——简易画图板

基于VC  MFC程序设计——简易画图板

包头师范学院本科学年论文论文题目:基于VC++MFC程序设计——简易画图板院系:信息科学与技术学院专业:计算机科学与技术学号:姓名:指导教师:撰写学年:2010至2011学年二零一零年十二月摘要本软件是利用VC++这个强大的可视化编程工具开发的,软件主要功能包括图形的绘制、线型的设置、颜色的设置,图形文件的重绘和保存等功能。

本文介绍了如何完成上述功能,同时详细阐述了画图系统的实现过程以及对画图系统所做的功能扩充。

在画图软件设计上,其主要任务是:实现“绘制图形”、“图形的保存”两项功能。

本软件具有实用性、稳定性、易用性,和可维护性的特点,应该说它应是一个开放性的软件,用户可以根据需要对其功能进行扩充、完善与修改,使其符合自己的要求。

总之,本软件是一个逐步完善的软件。

关键词:VC++;MFC;绘图AbstractThis software is using vc + + this powerful visual programming tool development, software main functions including graphics rendering, linetype Settings, color setting, graphics file redraw of preserving and function.The paper introduced how to accomplish these functions, and explains in detail drawing system realization process and to drawing system do function expansion. In drawing software design, its main task is to achieve "drawings", "graphic save" two functions.This software has practicability, stability, ease-of-use, and maintainability characteristic, should say it should be an open software, the user can according to the needs of its functions were expansion, perfect and modification, make them comply with their requirements. Anyhow, this software is a perfect gradually software.Key words:Vc + +; MFC; drawing目录引言 (1)第1章vc++6.0和MFC简介 (2)1.1 vc++6.0简介 (2)1.2 MFC简介 (2)第2章基础知识 (2)2.1工程的新建 (3)2.2单文档简介 (4)2.3添加消息响应函数 (5)2.4资源 (5)2.5设备环境 (6)第3章简易画图板的制作 (6)3.1设计目的 (6)3.2 总体设计 (7)3.3详细设计 (7)3.3.1点、直线、矩形、椭圆的绘制 (9)3.3.2连续线和扇形的绘制 (11)3.3.3画刷 (13)3.3.4设置对话框 (15)3.3.5颜色 (16)3.3.6打开与保存 (17)第4章结果及结论 (17)4.1运行结果 (17)4.2结论 (18)参考文献 (20)附录:简易画图板主要程序代码 (21)致谢 (31)引言计算机技术的发展,使人类社会进入了信息化和自动化,计算机智能识别也随着计算机的发展得到了迅速的发展。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安科技大学《VC++程序设计》实验报告题目画图院、系(部)计算机科学与技术学院专业及班级学号姓名:szgkb日期 2014.6.21 题目要求建立一个通过“画图”程序,它是基于MFC的多文档应用程序,并且应用程序的风格样式具有Office视觉样式的Ribbon风格。

在实现程序的过程中,要创建具有Office视觉样式的项目,再为应用程序的Ribbon功能区添加相应的绘图命令。

在实现绘图中,能够很好地使用CDC类中的绘图函数,以实现直线、矩形、圆弧、椭圆等的绘制。

了解MFC中设备环境类和坐标映射方式,并且了解常用的GDI对象。

扩展“画图”程序实现图形的绘制、保存、滚动等功能。

2 功能需求选择“绘图”选项卡后,将会展开一些绘图工具。

选择某个绘图工具后,便可以在客户区中绘制相应的图形,还可以点击面板上的“画笔颜色”和“填充颜色”按钮,利用弹出的颜色对话框分别设置绘图的颜色及填充的颜色,而且单击“文本”按钮还可以在客户区中输入文本内容,在文本输入中,涉及到文本的颜色、插入符的位置、字体、退格、回车、文本字符等的正确处理。

3 总体设计建立一个MFC的基于对话框的应用程序,取名为MyPaint1。

接下来创建Ribbon 功能区,创建了“工具”、“颜色”两个面板。

新建绘图类CDrawShape用以封装自由线、直线、矩形、椭圆、圆的绘制过程。

在CMyPaint1View中响应绘图命令并通过添加鼠标左键按下以及移动的消息响应函数(OnLButtonDown、OnMouseMovehe、 OnLButtonup)来实现图形绘制。

另外设置插入符、文本内容、文本颜色,来实现文本的输出。

最后进行对绘图光标的修改。

3.1 系统模块3.2 系统业务处理流程运行“画图”程序“绘图”菜单工具面板客户区绘图颜色面板保存图形⑴创建MyPaint1项目。

建立基于MFC的多文档应用程序,并且程序的风格样式具有Office视觉样式的Ribbon风格。

⑵创建Ribbon功能区。

正确添加工具按钮图像,添加一个菜单资源并为其添加相应的菜单命令、设置属性。

在CMainFrame类的InitializeRibbon函数中创建“绘图”列表,并且创建面板、添加工具按钮,代码如下:void CMainFrame::InitializeRibbon(){//……//添加“绘图”类别CMFCRibbonCategory* pCategoryDraw=m_wndRibbonBar.AddCategory(_T("绘图(&D)"),IDB_DRAWSMALL,IDB_DRAWLARGE);//创建“工具”面板CMFCRibbonPanel* pPanelTool=pCategoryDraw->AddPanel(_T("工具"));pPanelTool->Add(new CMFCRibbonButton(ID_DRAW_PEN,_T("画笔"),0,0));pPanelTool->Add(new CMFCRibbonButton(ID_DRAW_LINE,_T("直线"),1,1));pPanelTool->Add(new CMFCRibbonButton(ID_DRAW_RECT,_T("矩形"),2,2));pPanelTool->Add(new CMFCRibbonButton(ID_DRAW_ELLIPSE,_T("椭圆"),3,3));pPanelTool->Add(new CMFCRibbonButton(ID_DRAW_CIRCLE,_T("圆"),4,4));pPanelTool->Add(new CMFCRibbonSeparator());pPanelTool->Add(new CMFCRibbonButton(ID_DRAW_ERASER,_T("橡皮擦"),8,8));pPanelTool->Add(new CMFCRibbonButton(ID_DRAW_TEXT,_T("文本"),9,9));//创建“颜色”面板CMFCRibbonPanel* pPanelColor=pCategoryDraw->AddPanel(_T("颜色"));pPanelColor->Add(new CMFCRibbonButton(ID_DRAW_COLOR,_T("画笔颜色"),10,10));pPanelColor->Add(new CMFCRibbonButton(ID_FILL_COLOR,_T("填充颜色"),11,11));bNameValid=strTemp.LoadString(IDS_RIBBON_STYLE);//……}⑶新建绘图类。

使用MFC向导添加新类CDrawShape,CDrawShape类的绘图成员根据绘图类型调用设备环境CDC中的函数绘制图形并指定颜色填充图形。

void CDrawShape::DrawPen(CDC* pDC, POINT point){ASSERT(m_dwShapeType==SHAPE_PEN);//画笔m_ptBegPoint=m_ptEndPoint;m_ptEndPoint=point;CPen *pOldPen,pen;pen.CreatePen(PS_SOLID,1,m_crDrawColor);pOldPen=(CPen*)pDC->SelectObject(&pen);pDC->MoveTo(m_ptBegPoint);pDC->LineTo(m_ptEndPoint);pDC->SelectObject(pOldPen);}void CDrawShape::DrawLine(CDC* pDC,POINT point){ASSERT(m_dwShapeType==SHAPE_LINE);//直线m_ptEndPoint=point;CPen *pOldPen,pen;pen.CreatePen(PS_SOLID,1,m_crDrawColor);pOldPen=(CPen*)pDC->SelectObject(&pen);pDC->MoveTo(m_ptBegPoint);pDC->LineTo(m_ptEndPoint);pDC->SelectObject(pOldPen);}RECT CDrawShape::GetShapeRect(POINT ptBeg,POINT ptEnd) {CRect rtShape(ptBeg,ptEnd);//构造矩形rtShape.NormalizeRect();return rtShape;}void CDrawShape::DrawRect(CDC* pDC, POINT point){ASSERT(m_dwShapeType==SHAPE_RECT);//矩形m_ptEndPoint=point;m_rtShapeRect=GetShapeRect(m_ptBegPoint,m_ptEndPoint); CPen *pOldPen,pen;pen.CreatePen(PS_SOLID,1,m_crDrawColor);pOldPen=(CPen*)pDC->SelectObject(&pen);CBrush *pOldBrush,brush;brush.CreateSolidBrush(m_crFillColor);pOldBrush=(CBrush*)pDC->SelectObject(&brush);pDC->Rectangle(&m_rtShapeRect);pDC->SelectObject(pOldPen);pDC->SelectObject(pOldBrush);}void CDrawShape::DrawEllipse(CDC* pDC, POINT point) {ASSERT(m_dwShapeType==SHAPE_ELLIPSE);//椭圆m_ptEndPoint=point;m_rtShapeRect=GetShapeRect(m_ptBegPoint,m_ptEndPoint); CPen *pOldPen,pen;pen.CreatePen(PS_SOLID,1,m_crDrawColor);pOldPen=(CPen*)pDC->SelectObject(&pen);CBrush *pOldBrush,brush;brush.CreateSolidBrush(m_crFillColor);pOldBrush=(CBrush*)pDC->SelectObject(&brush);pDC->Ellipse(&m_rtShapeRect);pDC->SelectObject(pOldPen);pDC->SelectObject(pOldBrush);}RECT CDrawShape::GetCircleRect(POINT ptBeg, POINT ptEnd) {CRect rtShape(CRect(ptBeg,ptEnd));//规范化矩形rtShape.NormalizeRect();int cx=rtShape.Width();int cy=rtShape.Height();int diameter=(cx<=cy)?cx:cy;if(ptBeg.x<=ptEnd.x)rtShape.left=ptBeg.x,rtShape.right=ptBeg.x+diameter; elsertShape.left=ptBeg.x-diameter,rtShape.right=ptBeg.x;if(ptBeg.y<=ptEnd.y)rtShape.top=ptBeg.y,rtShape.bottom=ptBeg.y+diameter; elsertShape.top=ptBeg.x-diameter,rtShape.bottom=ptBeg.y;return rtShape;}void CDrawShape::DrawCircle(CDC* pDC, POINT point){ASSERT(m_dwShapeType==SHAPE_CIRCLE);//圆m_ptEndPoint=point;m_rtShapeRect=GetShapeRect(m_ptBegPoint,m_ptEndPoint); CPen *pOldPen,pen;pen.CreatePen(PS_SOLID,1,m_crDrawColor);pOldPen=(CPen*)pDC->SelectObject(&pen);CBrush *pOldBrush,brush;brush.CreateSolidBrush(m_crFillColor);pOldBrush=(CBrush*)pDC->SelectObject(&brush);pDC->Ellipse(&m_rtShapeRect);pDC->SelectObject(pOldPen);pDC->SelectObject(pOldBrush);}void CDrawShape::DrawEraser(CDC* pDC, POINT point) {ASSERT(m_dwShapeType==SHAPE_ERASER);//橡皮擦m_ptBegPoint=m_ptEndPoint;m_ptEndPoint=point;CPen *pOldPen,pen;pen.CreatePen(PS_SOLID,8,RGB(255,255,255));pOldPen=(CPen*)pDC->SelectObject(&pen);pDC->MoveTo(m_ptBegPoint);pDC->LineTo(m_ptEndPoint);pDC->SelectObject(pOldPen);}⑷响应绘图命令,为工具命令添加消息响应函数。

相关文档
最新文档