当前位置:文档之家› VC单文档中画图

VC单文档中画图

VC单文档中画图
VC单文档中画图

VC单文档中画图程序设计

少将

程序设计要求:创建一个单文档,在单文档中作图,画点、直线、矩形、椭圆;并且创建一个对话框来设置所画图的线宽。当再次打开设置的时候看到的线宽是上次所设置的线宽。

程序设计:

1.打开Microsoft Visual C++ 6.0,新建一个基于MFC AppWizard(exe)的单文档类型的工程。

2.打开资源视图(ResourceView),在ResourceView选项卡中的菜单项中添加一个绘图菜单。并在该菜单的子项中添加画图类型(点,直线,矩形,椭圆,设置)如图:

为菜单项添加命令响应

在ResourceView中添加成员变量用来接收画图类型,并将其在CGraphicView::CGraphicView()中初始化。

m_nDrawType=0;//初始化画图类型

void CGraphicView::OnDot()

{

// TODO: Add your command handler code here

m_nDrawType=1;

}

void CGraphicView::OnLine()

{

// TODO: Add your command handler code here

m_nDrawType=2;

}

void CGraphicView::OnRectangle()

{

// TODO: Add your command handler code here

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对象

//创建画笔对象

CPen pen(PS_SOLID,m_nLineWidth,RGB(255,0,0));

dc.SelectObject(&pen);//将画笔选择到设备描述表

CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH)); dc.SelectObject(pBrush);

switch(m_nDrawType)

{

//画点

case 1:

dc.SetPixel(point,RGB(255,0,0));

break;

//画直线

case 2:

dc.MoveTo(m_ptOrigin);//代表鼠标原点(左键按下)

dc.LineTo(point);//代表鼠标终点(左键按下)

break;

//画矩形

case 3:

dc.Rectangle(CRect(m_ptOrigin,point));

break;

//画椭圆

case 4:

dc.Ellipse(CRect(m_ptOrigin,point));

break;

}

CView::OnLButtonUp(nFlags, point);

}

注:如果我们用缺省的画刷去填充图形的内部。如图

这时候我们就要重新创建一个画笔,将画刷设为透明的,这样我看到的效果就不一样了。如图

CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));

dc.SelectObject(pBrush);

这两行的代码就可以实现这样的效果。

3.创建一个对话框(Setting)用来设置画图的线宽。同时在ResourceView中添加一个成员变量用来保存线宽。

添加一个静态文本以及一个编辑框。如图

为该对话框添加命令响应

当单击设置的时候,弹出Setting对话框对线宽进行设置。当再次打开线宽设置的时候,保存上次所设置的线宽

void CGraphicView::OnSetting()

{

// TODO: Add your command handler code here

CSettingDlg dlg;

dlg.m_nLineWidth=m_nLineWidth; if(IDOK==dlg.DoModal())

{

//保存线宽设置

m_nLineWidth=dlg.m_nLineWidth;

}

}

当将线宽设置为10时

图形线的宽度也会相应的变宽

(已读)第十四章 单文档界面的程序

第十四章单文档界面的程序 用VC++的AppWizard生成的程序有三种样式的界面,它们是单文档、多文档和对话框界面。前面各章我们都生成对话框样式的界面,这可以方便我们学习各种常用控件的设计,本章要学习如何生成一个单文档界面的应用程序,以及文档类和视图类的概念和相互关系。 本章要点 1 用AppWizard生成单文档界面的操作方法 2 文档类和视图类的概念 3 如何保持文档和视图的同步关联。 14.1 生成单文档界面的文本编辑器 用AppWizard生成单文档界面的操作方法和生成对话框界面的操作方法稍有不同,我们通过建立一个“文本编辑器”应用程序MyNote.exe来演示,具体过程如下: 1 打开应用程序向导,在d:\myVC\CH14创建应用程序MyNote。 2 在Step1中选择“单文档”和“文档/视图支持”,如图chap14-01. 图chap14-01 3 在step2和step3对话框中都用默认的。在step4中如图chap14-02选择前五项,当然也可以按你的需要选择。 图chap14-02

4 在Step5中选择MFC标准、加备注和静态连接库。图chap14-03 图chap14-03 5 在step6中选择视图的基类(base class),因为我们需要的是文本编辑器,所以要选类CEditView作为基类。点击[完成]按纽,应用程序的框架就创建好了。 14.2 文档类和视图类的概念 向导工作完成以后马上编译和连接,运行后就可以看到一个已经能够使用的文本编辑器,它不仅可以输入文字,还可以保存或打开文件,与Windows的记事本差不多了,只是没有设置字体的功能。图chap14-04是它运行时的窗口。 chap14-04 菜单和工具栏的响应函数都已经生成了相应的代码,我们没有做任何编写工作就得到了一个“完整”的应用程序,甚至还创建了一个帮助文件呢。这就是VC++开发环境的巨大威力!我们从上图中可以看到,编辑菜单中的复制和剪切都已经有效了。 图中的窗口是主框架,对应于类CMainFrame,而其中的“编辑区域”叫用户区,对应于视图类CMyNoteView,而被编辑的文本对应于一个文档类CMyNoteDoc。另外,每个程序还有一个对应于应用程序本身的类,本例中是CMyNoteApp。这四个类就是向导自动生成的应用程序框架类,打开工作区的类classView页区,就可以看到,如图chap14-05。 展开视图类,可以找到一个函数GetDocument(),它是使视图(的内容)和文档保持同步关联的纽带。它返回一个CMyNoteDoc类型的对象指针m_pDocument。使用它在视图中访问文档的内容。

结构最快画图方法

画图最快方法总结: 2013年4月份收到魏哥给我的一个文章号称:史上最快画结构图方法 一:前期准备 熟悉建筑图,理清思路,分清先后,可减少些不必要的重复劳动 二:计算书整理,原始施工图生成 初步检查PKPM计算书,根施工图需要归并(相关程序网上搜),PKPM生成梁施工图,并转换成DWG图 三:提取建筑轴网,插结构梁图 TSSD初始化梁图,与建筑平面核对,标注降板,用“板配筋及修改程序”画板图,如果建筑图全的话,画节点及相关构造柱,根据节点图核对计算书梁高。插板说明(住宅约5~30分钟每层) 四:画梁图 根据上一步调整计算书,并插入CAD图,(梁板画在一张图中哦)隐去本层板图相关图层,开始画梁 用“梁筋优化程序”初步调整梁图并整理梁文字位置(住宅约5~10分钟每层),梁标高标注,用“梁配筋校对程序”校对下梁图(不论大小约2分钟每层) 错的修改下(住宅约5~10分钟每层)。插梁说明。 五:画柱 提梁图中柱轴网及计算书,拷出,修理轴网及标注,用TSSD标柱尺寸,用“柱施工图自动生成程序”生成柱施工图 标柱标高,沉降观测点(一层),插柱说明,层高表。(无论大小约5分钟每层) 六:基础(桩基) 上图中柱及轴网拷出。插入柱底内力数字,用“承台及桩布置程序”布桩(无论大小约2~5分钟)。提出桩位图,拷出插入桩施工说明 余下承台详图中,布地梁,画地梁及承台详图插基础说明。 七:画楼梯(平法哦) 八:整理说明 九:整理计算书 十:出图打印计算书(相关程序网上搜) 2013年12月4日广州-邓工发出群邮件往期学员探讨画图方法以备跟得上时代进步 各位兄弟: 大家好! 请问各位所在设计院绘制结构施工图主要用什么方法? (1)纯CAD; (2)探索者; (3)PKPM自动出图; (4)各类插件: (5)其他方法(请填写绘图方法)。 请大家认真回复,谢谢大家! 广州老庄邓工 根据收到的信件武汉胡工乌市贾工的做法我认为比较实用

mfc绘图程序上机步骤

首先生成MFC程序空框架 空框架中的每个类的职责是什么要自己理解清楚 第一次课: 1.定义自己的数据类CLine直线类,用于绘图 点击菜单:插入—类 选择Generic class,输入类名,每个类都是分成两个文件.h 中只有类体,包含类的数据成员定义和成员函数声明,.cpp中就是成员函数的类体外实现 classCLine { int x1,y1,x2,y2; public: CLine(int a=0,int b=0,int c=0,int d=0); virtual ~CLine(); int Getx1(); int Gety1(); int Getx2(); int Gety2(); void SetPoint1(intx,int y);很多函数是在后面使用中发现问题逐渐添加的 void SetPoint2(intx,int y); }; 2.自定义的类要作为数据成员出现在Doc类中 classCSmallCADDoc : public CDocument { protected: // create from serialization only CSmallCADDoc(); DECLARE_DYNCREATE(CSmallCADDoc) // Attributes public: CLine line1; //数据成员应该是私有,但是由于文档类与视图类交换频繁,为了访问方便,直接定义成公有了。你也可以定义成私有,再定义一个Get函数间接访问,取他的值3.注意:添加了这个数据成员后,需要增加几个#include “Line.h”语句 添加的原则是,每个cpp文件都单独编译,哪里用到新的类,相应的cpp前就要增加#include “。。。”语句 此处是在CSmallCADDoc类中添加了一个CLine line1;类对象,在SmallCADDoc.h文件中。所以,凡是包含了#include “SmallCADDoc.h”的地方都要在前面添加#include “Line.h” 语句。共3处:app doc view 这3个类的cpp文件前 4.注意:初始化 CLine line1; //数据成员是文档类的,它不像dos下程序,明确能看到定义,调用构造

mfc简单绘图程序

M F C 简 单 的 绘 图 程 序 ——王帅

目录 摘要 (2) 关键字 (2) 1 引言 (2) 设计目的 ............................................................................................................ 错误!未定义书签。 2 功能说明 (2) 2.1菜单栏....................................................................................................... 错误!未定义书签。 2.1.1图形 (3) 2.1.2画笔 (4) 2.1.3画硬币 (4) 2.2工具栏 (5) 2.3状态栏 (5) 3 功能的实现 (5) 3.1 视图设计 (5) 3.2 编辑资源 (6) 3.3 编程思路及各个函数的实现 (7) (1)思路 (7) (2)代码的实现 (7)

1.为基本形状创建一个基类 (8) 2.基本形状类的创建 (8) 2.1矩形类的创建及定义 (8) 2.2圆形类的创建及定义 (10) 2.3正五边形类的创建及定义 (11) 2.4正三角形类的创建及定义 (14) 2.5椭圆类的创建及定义 (16) 2.6正四边形类的创建及的定义 (17) 2.7正六边形类的创建及定义 (18) 2.8直线类的创建及定义 (19) 3.各基本形状类在CMyDraw2_0类中的调用和绘图的实现 (20) 3.1矩形类的调用与与绘图的实现 (20) 3.2圆形类的调用 (24) 3.3正三角形类的调用 (25) 3.4基本类型调用的剩余代码 (26) 4.画笔的使用、颜色及大小的调整 (29) 5.画硬币 (35) 6.工具栏中的自定义控件 (38) 7.状态栏中的显示 (39) 4程序功能的测试 (41) 5最后总结 (42)

第三章 单文档应用程序

第三章单文档应用程序 在本学习情境中主要学习: (1)单文档应用框架 (2)文档与视图 3.1 MFC消息处理 3.1.1事件驱动程序设计 事件驱动程序设计是一种全新的程序设计方法,它不是由事件的顺序来控制,而是由事件的发生来控制,而这种事件的发生是随机的、不确定的,并没有预定的顺序,这样就允许程序的的用户用各种合理的顺序来安排程序的流程。对于需要用户交互的应用程序来说,事件驱动的程序设计有着过程驱动方法无法替代的优点。它是一种面向用户的程序设计方法,它在程序设计过程中除了完成所需功能之外,更多的考虑了用户可能的各种输入,并针对性的设计相应的处理程序。它是一种“被动”式程序设计方法,程序开始运行时,处于等待用户输入事件状态,然后取得事件并作出相应反应,处理完毕又返回并处于等待事件状态。它的框图如图1所示: 图1事件驱动程序模型 3.1.2 MFC的消息处理 在DOS应用程序下,可以通过getchar()、getch()等函数直接等待键盘输入,并直接向屏幕输出。而在Windows下,由于允许多个任务同时运行,应用程序的输入输出是由Windows 来统一管理的。 Windows操作系统包括三个内核基本元件:GDI, KERNEL ,USER。其中GDI(图形设备接口)负责在屏幕上绘制像素、打印硬拷贝输出,绘制用户界面包括窗口、菜单、对话框等。系统内核KERNEL支持与操作系统密切相关的功能:如进程加载,文本切换、文件I/O,以及内存管理、线程管理等。USER为所有的用户界面对象提供支持,它用于接收和管理所有输入消息、系统消息并把它们发给相应的窗口的消息队列。消息队列是一个系统定义的内存块,用于临时存储消息;或是把消息直接发给窗口过程。每个窗口维护自己的消息队列,并从中取出消息,利用窗口函数进行处理。框图2如下:

ChemDraw教程:教你如何快速保存结构图文件

ChemDraw教程:教你如何快速保存结构图文件存储chemdraw文件的操作很简单,点击File菜单,选择Save,此时出现一个存储对话框,输入要存储文件的名,点击OK即可。 1.存储ChemDraw文件的方法 (1)在File菜单中选择Save,此时出现一个存储对话框,所用的平台不同,对话框也不同。 ChemDraw的save对话框 (2)在【文件名】框中输入要存储文件的名。 (3)单击OK或Save。

Windows 95操作系统允许输入32个字母的名字(包括空格,例如,my first structure in ChemDraw。),而Windows 3.1允许输入8.3个字母。 【注意】ChemDraw(*.cdx)是其本身的格式。见到这种格式,ChemDraw能够准确地把信息储存起来,否则将丢失全部或部分信息。例如,在Windows下以EPS文件格式存储,结果将丢失原子和键之间的重要连接部分。 当文件存完后,在继续工作的过程中,仍然需要不断地存储,每次只需单击File菜单中的Save 命令即可,直到完成任务为止。 2.以不同的文件名和位置存储文件副本 可以用Save As命令以不同的文件名、不同的位置或不同的格式存储文件副本。以这种形式存储文件副本,对保持原文件或把原文件的信息输入到其他应用都是很有用的。 (1)在File菜单中选择Save As。 (2)在Save对话框中输入新的名或新地址名。 (3)单击OK 或Save。 3.以不同的文件格式存储文件副本 (1)在File菜单中选择Save As。 (2)在Save对话框下面的下拉菜单中选择不同格式。 (3)在File Name 中输入新的名。 (4)选择要存储文件副本的地址(如文件夹、桌面等)。 (5)单击OK或Save。 4.消除结构中最近的变化 在File菜单中选择Revert,此时所有的在最后储存文件后的改动都将被消除,最后储存的文件将被修复。

简单的绘图程序实验报告

面向对象程序设计实训(基于MFC程序设计) 题目: 简单的绘图程序 院系专业: 姓名: 学号: 同组其他学生(学号):

简单绘图程序说明 1、功能分析 目前这个软件的主要功能有如下: 1、画直线:通过OnLine()函数实现。 2、画矩形:通过OnRectangle()函数实现。 3、画圆角矩形:通过OnRoundrect()函数实现。 4、画椭圆:通过OnEllipse()函数实现。 5、铅笔工具:可以画任意线条。通过直接在OnMouseMove(UINT nFlags, CPoint point)函数里面添加代码实现。 6、右键弹出菜单:可以在客户中点击鼠标右键,快速选择常用菜单。通过 OnContextMenu函数实现。 7、状态栏显示鼠标移动的坐标:在程序的右下角显示,通过调用setWidnowText 和GetParent()实现。 8、画图颜色选择:可以画任何颜色的线条,通过OnColor()函数实现。 9、线条类型及线宽的设置:可以将画出的线条设置成实线、虚线、点线、点划 线,双点划线,还可以设置线条的粗细,,通过实例这一功能立刻显示所选择线条的粗细及线型。通过新建CLineSettingDlg类,其中OnSelchangeLineStyle()函数实现线型的改变,OnChangeEditLineWidth()函数实现线宽的改变。再在CDrawView类中调用OnLineSetting()函数实现画笔的对话框, CLineSettingDlg类中的OnPaint()函数是实现示例功能的。 10、窗口的重绘时不擦除原来的内容:新建CShape类用来保存线条的颜色,线 宽,填充色等属性,在窗口大小发生变化时有OnDraw(CDC* pDC)函数进行重绘工作,重绘中调用了各个绘图函数的Draw(CDC *pDC)函数。 11、所绘图形的保存于读取,通过Serialize(CArchive &ar)函数进行序列化操作, 将所绘图形的信息通过文件的形式保存起来。

(整理)天正结构6绘图步骤

天正结构6绘图步骤 广东工业大学梁靖波 2004.6.4 一、结构平面图 1、建立轴网 a、Tasd 6.0 →“初始设置”→“初始比例”、“绘图比例”均设为1:100 b、Tasd 6.0 →“轴网”→“直线轴网” c、Tasd 6.0 →“轴网标注” 2、绘制柱子 a、Tasd 6.0→“墙柱绘制”→“布各种柱” 3、绘制剪力墙(或异型柱) a、Tasd 6.0→“墙柱绘制”→“绘剪力墙” (注:也可以用其他绘图命令绘出剪力墙的轮廓线) b、用solid命令填充剪力墙(每捕捉四点即填充一个四边形) c、“复制”、“镜像复制”、“移动”剪力墙。 4、绘制主梁线 a、Tasd 6.0→“梁绘制”→“绘双线梁” b、取梁线起点→键入“w”→输入梁宽数值→绘制主梁线 (注:“梁左偏”及“梁右偏”乃相对于绘梁时的前进方向) 5、绘制次梁线 a、绘制辅助线:Tasd 6.0 →“轴网”→“直线轴网”→“添加轴线” b、“梁绘制”→“绘双线梁” c、取梁线起点→键入“w”→输入梁宽数值→绘制次梁线 d、删除添加的轴线(辅助线) 6、绘制楼板钢筋 a、Tasd 6.0→“板、钢筋”→“板底钢筋”→取消编号,输入钢筋直径间距 →点击两侧梁边绘制板底钢筋 b、Tasd 6.0→“板、钢筋”→“支座钢筋”取消编号,输入钢筋直径间距, 输入钢筋左、右边伸出支座长度→点击支座两边绘制支座钢筋 c、修改配筋: 双击配筋文字,即可进行修改。用“拉伸”命令,可移动文字的位置; 7、标注梁号、板号、柱号 a、T asd 6.0→“文本编辑”→“多文编辑”→右击鼠标→输入文字→插入

注:可批量复制后再编辑以加快进度。 编辑时,直接双击对象,或“文本编辑”→“多文编辑”→选择对象 8、标注细部尺寸、文字等 a、T asd 6.0→“尺寸编辑”→“多重标注”→连续选择标注点→鼠标右键退出→ 拉出尺寸线 注:按提示键入“V”则改标注方向为垂直。 b、Tasd 6.0→“文本编辑”→“多文编辑”→右击鼠标→输入文字→插入 c、Tasd 6.0→“符号标注”→“图名”、“剖面索引”、“引线说明”等。

C++实验报告(MFC简单画图程序)

VC++程序设计实验报告 一、实验目的 掌握MFC编程 二、实验内容 用MFC向导创建单文档应用程序,一个简单的画图程序。 ?使用C++语言实现 ?使用VC++6.0集成开发环境开发 ?使用MFC应用程序开发框架 三、实验步骤 ?基本功能描述 1. 打开exe文件,在绘图下拉菜单中可分别设置绘制的图形形状,如直线、 曲线、矩形及椭圆,线宽选项,有1-6可供选择,线型选项有实线、虚线、点线和点段线供设置,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2. 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决 定图形的大小,当鼠标弹起,此图形则绘制完毕。 ?设计思路 1. 对需要用到的变量进行初始化。 2. 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同的线宽,线色与填充色,即可改变画笔或画刷的属性。 3. 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4. 选择图形或其它属性,可进行下一次绘制。 ?软件设计 A 设计步骤 1.创建单文档 创建一个MFC AppWizard[exe]工程,命名为“Draw”,如图1所示,并创建单文档,如图2所示。创建成功后,系统自动生成相应的类,如图3所示。

图1 创建工程 图2 创建单文档

mfc简单绘图程序报告

简单绘图程序 1 需求说明 1.1 问题描述 设计一个简单的绘图应用程序,可以绘制图形或自由绘制线段,可以更改颜色、画笔粗细、保存文件。 1.2功能说明 1.图形绘制功能:直线、椭圆、矩形。 在菜单栏中选择需要的图形(也可以通过工具栏中选择)用鼠标便能在视图中绘出相应的图形。 2.可以绘制自由线段 3.对图形的操作:能通过菜单栏弹出对话框选择线宽、自定义颜色,也可以擦除绘制的线段。 4.可以保存绘图文件,保存后打开可以继续绘制。 2.1.3 数据说明 在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。在CDzyView类中添加一个私有变量xz;用来保存用户的选择(直线、矩形、椭圆、自由绘图)在绘制时都可有两点来确定其图形。当鼠标左击时得到一个点,当鼠标停止移动时得到另外一个点。为视图类CDzyView分别捕获鼠标左键按下和弹起这两个消息。当鼠标左键按下时,需要将鼠标当前按下点保存至sx、sy,在鼠标移动停止后,将当前坐标保存至ex,ey.

其他主要数据说明: int fd 判断是否为自由绘图模式int w 线宽 int R RGB中的R int G RGB中的G int B RGB中的B CGraph类中 int m_nType:保存后重绘时用户的选择int qdx; 重绘起点x int qdy; 重绘起点y int zdx; 重绘终点x int zdy; 重绘终点y CLine类中 int cx; 重绘线宽 int sx; 重绘起点x int sy; 重绘起点y int zx; 重绘终点x int zy; 重绘终点y int w; 重绘线宽 自定义颜色对话框关联变量: IDC_EDIT_RED int m_Red IDC_EDIT_GREEN int m_Green IDC_EDIT_BLUE int m_Blue IDC_SCROLL_RED CScrollBar m_Sred IDC_SLIDER_GREEN CSliderCtrl m_Sgreen IDC_SPIN_BLUE CSpinButtonCtrl m_Sblue 2 分析、设计与实现 2.1 主要功能设计与实现

单文档视图结构ActiveX控件

单文档/视图模式是MFC编程里比较强大的一种编程模式,如果ActiveX控件能够用这种模式的话,将可以做出非常强大的Web在线应用。 下面我们就介绍一种把单文档/视图模式的程序改造成ActiveX控件的方法。 做起来很难,但是完成了会很有成就感,本方法来源于15Seconds。在VC6.0和https://www.doczj.com/doc/7212038698.html,下都已证明可行。我用这个方法做了一个Web上的在线服装设计软件,Client 端支持NT4.0,客户公司有上千台NT4.0。据美国同事说在投标中击败了Altium公司(电路设计软件Protel的开发商)的方案,哈。 需要要两个文件: // ActivDoc.cpp : implementation file // #include "stdafx.h" #include "ActivDoc.h" CActiveXDocTemplate::CActiveXDocTemplate(CRuntimeClass* pDocClass, CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass) : CSingleDocTemplate(IDR_NOTUSED, pDocClass, pFrameClass, pViewClass) { ASSERT(pFrameClass); } CFrameWnd* CActiveXDocTemplate::CreateDocViewFrame(CWnd* pParen tWnd) { CWaitCursor cursor; TRY { ASSERT(pParentWnd && IsWindow(*pParentWnd)); ASSERT_KINDOF(CActiveXDocControl, pParentWnd); m_pParentWnd = pParentWnd; m_pFrameWnd = NULL; // OpenDocumentFile is a virtual method (implemented in

MFC实现简单画图形程序(学习相关)

《MFC编程及应用》课程设计报告题目:简单画图形程序 学号:姓名: 指导老师: 时间: 评语:

程序设计步骤: 一、建立基于对话框的应用程序框架; 二、CMy0910200155Dlg类中关键新增变量的作用: CPtrArray pta; //用于保存已绘图形的相关信息。 CMemoryNode *pmN; //指向CMemoryNode类的指针,程序运行过 程中动态保存对象信息。 CMemoryNode *pmn; //指向CMemoryNode类的指针,从文件中读 取信息时动态创建类的对象。 COLORREF m_CurrentBrushColor; //用于存放当前画刷的颜色。 COLORREF m_CurrentPenColor; //用于存放当前画笔的颜色。 int num; //用于存放从"Index.txt"文件中读取的数字。 int flag=0; //用于标识:当为1时,表示按下了”画图”按钮;当为2时, 表示按下了”撤消”按钮;当为3时,表示按下了”加载历史” 按钮,则从文件中读取信息。 int mark; //用于标识:当为0时,表示刚画过矩形;当为1时,表示 刚画过圆角矩形;当为2时,表示刚画过椭圆。 int index; //用于存放pta数组的容量。 int flag1=0; //用于标识,和flag搭配,用来处理多种情况下的窗口重绘 问题。 int ButtonState=0; //用于标识,是类CShow和类CMy0910200155Dlg 的一个接口,通过其值在1和0之间转换,来处理弹出式对 话框的初次绘制和移动时的重绘问题。

c面向对象程序设计MFC简单计算器实验报告

计算机与信息工程学院 《程序设计基础》课程设计报告 题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东 学生学号:2011508154 专业班级:电子信息工程(1)班 指导教师:高攀

1 课程设计的题目 编写一个能实现简单功能的计算器 2 题目要求 1. 有一个计算器图形。 2. 能实现加、减、乘、除及乘方的运算。 3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色 例如:输入数字1 时,在计算器图形上的1键变为红色。 4. 屏幕、图形颜色、形状自定 3 总体设计 3.1 总体框架 图1 系统框架

3.2 系统功能说明 在VC++6.0中绘制计算器界面,各控件的设置 对0~9控件设定相应的ID和其他属性: 图2 “1”控件设置 对“+、-、*、\”控件设定相应的ID和其他属性: 图2 “+”控件设置 对其它控件设定相应的ID和其他属性: 图3 其它控件设置

主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。 4 程序详细设计 4.1系统主调模块 图5 程序流程图

4.2各模块详细设计 4.2.1 建立的变量,控件的命名,对应的消息处理函数对应表 double poz; //保存小数点的位置,初始化为1,表示poz-1个小数点。 double m_Dis; //Edit控件上需要显示的数字 BOOL point_flag; //小数点表示位,判定是否是小数,是小数为1,不是小数为0。 double numfirst; //保存计算过程中的前一个数字, double numsecond;//保存计算过程中的第二个数字 char op;//记录当前的计算符号,可以为’+’,’-’,’*’,’/’,’=’,’c’,’n’ 变量初始化: poz=1; m_Dis = 0.0; numfirst=0; numsecond=0; op=0;

结构施工图的绘制方法(精)

结构施工图的绘制方法 施工图是工程师的“语言”,是设计者设计意图的体现,也是施工、监理、经济核算的重要依据。结构施工图在整个设计中占有举足轻重的作用,切不可草率从事。 对结构施工图的基本要求是:图面清楚整洁、标注齐全、构造合理、符合国家制图标准及行业规范,能很好地表达设计意图,并与计算书一致。 通过结构施工图的绘制,应掌握各种结构构件工程图表的表达方法,会应用绘图工具手工绘图、修改(刮图和校正,同时能运用常用软件通过计算机绘图和出图。 10.1.2 结构施工图的绘制方法 钢筋混凝土结构构件配筋图的表示方法有三种: 一、详图法。它通过平、立、剖面图将各构件(梁、柱、墙等的结构尺寸、配筋规格等“逼真”地表示出来。用详图法绘图的工作量非常大。 二、梁柱表法。它采用表格填写方法将结构构件的结构尺寸和配筋规格用数字符号表达。此法比“详图法”要简单方便得多,手工绘图时,深受设计人员的欢迎。其不足之处是:同类构件的许多数据需多次填写,容易出现错漏,图纸数量多。 三、结构施工图平面整体设计方法(以下简称“平法”。它把结构构件的截面型式、尺寸及所配钢筋规格在构件的平面位置用数字和符号直接表示,再与相应的“结构设计总说明”和梁、柱、墙等构件的“构造通用图及说明”配合使用。平法的优点是图面简洁、清楚、直观性强,图纸数量少,设计和施工人员都很欢迎。为了保证按平法设计的结构施工图实现全国统一,建设部已将平法的制图规则纳入国家建筑标准设计图集,详见《混凝土结构施工图平面整体表示方法制图规则和构造详图》(GJBT-51800G101(以下简称《平法规则》。“详图法”能加强绘图基本功的训练;“梁柱表法”目前还在广泛应用;而“平法”则代表了一种发展方向。毕业设计时宜在掌握各种方法的基础上有所侧重。 10. 2 结构施工图绘制的具体内容

程序结构

5.1.1用户登记表设计 表5-2用户登记表 用户登记表(ds—data) 包含与用户登记描述要求相匹配的字段 字段名字段类型字段长度主键索引备注 Id 自动编号长整型是有id Xue If) 文本8 否有职工工号 Name 文本20 否无姓名 Tel 文本20 否无电话 Fang_ID 文本6 否有房间号 DANWEI 文本10 否有单位 IP 文本15 否无lp MAC 文本14 否无maC qs—ny 文本20 否无起始年月 ZZ nV 文本20 否无终止年月 ren 1C 文本18 否无哪个管理员录入 ru date 时间/日期长否无登记日期 ru time 时间/日期长否无登记时间 Shouf bz 文本l 否无登记标志 kaitong_bz 文本1 否无开通标志 5.1。2管理员注册表设计 表5-3管理员注册表 管理员注册表(register) 包含要求配置系统管理员相匹配的字段 字段名字段类型字段长度主键索引备注 IC 文本18 是有身份证号 Name 文本20 否无姓名 Password 文本18 否无口令 Sex 文本2 否无性别 Age 数字整型否无年龄 Createt.ime 时间/日期长否无注册时间 Lastvisittime 时间/日期长否无最后登陆时间 regi sted—count 数字长整型否无已经注册人数 Visittimes 文本50 否无登陆次数 5.1.3交换机数据表设计 表5-4交换机数据表 交换机数据表(switch) 包含与交换机信息以及网络运行相匹配的字段字段名字段类型字段长度主键索引备注 Xuhao 数字整型是有序号 Name 文本50 否无安放位置 SW nO 文本6 否无交换机编号 Ipdz 文本15 否无IP地址 USer name 文本50 否无登陆用户名 USer mlma 文本50 否无登陆用户密码 sw__xinghao 文本12 否无交换机型号 Ipduan 文本3 否无可管理的ip段

楼梯详图绘制步骤

楼梯详图绘制步骤公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

做楼梯结构详图的步骤: 1.从结构平面图中将楼梯部分截取出来(包括轴线号,楼面梁和墙 柱等),放到楼梯结构详图中。 2.将楼梯建筑详图参照到结构详图中,将结构详图的楼梯平面改成 和建筑图一致(包括踏步、梯井、平台板宽度),并注明梯段宽和踏步尺寸。 3.楼梯平面剖切高度一般在起步以上1m左右,但不限于此,可依 具体情况而定,必须将各个梯段及其支承结构最清晰地反映出来。特别是针对休息平台处加了承重墙和TL的情况,若剖切面在平台板以下,则承重墙和TL都被其上一层的楼面结构挡住,反映不清楚,应该将平面的剖切高度改至平台板面以上。 4.平面大致确定以后就确定每一梯段和平台板的支座,用加梯梁、 承重墙、吊墙等方式,也可直接利用楼面梁和墙柱,具体视情况而定。对每一梯板和梯梁,都必须想清楚是以什么结构为支承的,特别是加梯梁时,要特别注意其标高,所利用的支座是否能在同一标高作为支撑(如:在楼面梁上加梯梁时,若梯梁标高高于或低于楼面梁,则不能用楼面梁作为支座)。另需注意,所加的承重墙等构件不能占用建筑的使用空间(包括梯段和平台板净宽)。 5.细部标注: a.尺寸:只需反映与楼梯有关的尺寸,如梯段宽、踏步宽、梯井 宽、梯梁梯板及相关的承重墙等结构定位尺寸,楼面上的信

息无须反映; b.注明TL、TB及PTB尺寸,楼面及PTB标高,并注明梁顶标高; c.注明承重墙和吊墙起始标高和顶标高,如:~. d.注明梯段“上”“下”方向; e.其他标注请参考以前的楼梯施工图。 6.剖面图: a.剖面图一般只需一个,在将平面图上的信息全面反映出来的前 提下,可以尽量简单,但若一个剖面反映不全面,必须增加剖面图数量(一般是针对环形楼梯及其他走向变化次数较多的情况); b.可直接用建筑剖面图修改,但须将梁柱墙等结构构件改成与结 构平面图一致,而且图层及标注样式文字样式也要相应修改,并去掉结构不需要的标注; c.准确画出剖面图之后,必须检查净高,各个梯段的净高不得小 于,特别是紧挨斜梯段的梯梁向梯段方向平移300后,梁底与下一层梯段相应位置的净高须大于; 7.估算梯板厚度,一般是L/28(L为计算跨度),若梯板厚度大于 180,则须想办法减小跨度。梯梁尺寸一般为250x450,计算跨度较大时可以适当加大,梯梁若以框架柱或剪力墙为支座时,应按框架梁考虑;承重墙和吊墙厚度一般为250厚,让梯梁的钢筋平直段锚固足够。 8.需要考虑建筑的墙体是落在什么结构上,是落在梁上还是平台板

简易画图板设计报告

设计报告:Graphic简易画 图板 -----韩伟谢程焜肖越周峰 电科二班

1设计目的 设计一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。此程序将实现简单的绘图功能,包括点、直线、矩形、椭圆、扇形和连续线的绘制。并且能实现绘图的控制,包括线宽、线型和颜色的设置,图形的保存和打开以及笔刷的使用。 2 总体设计 设计图如图6

图6 3详细设计 首先,新建一个单文档类型的MFC AppWizard (exe)工程,工程取名为:Graphic。为此程序添加一个子菜单,菜单名称为“绘图”,并为其添加六个菜单项,分别用来控制不同图形的绘制。当用户选择其中的一个菜单项后,程序将按照当前的选择进行相应图形的绘制。添加的六个菜单项的ID及名称如表1所示。然后分别为这六个菜单项添加命令响应,本程序让视类(CGraphicView)对这些菜单命令进行响应,这六个响应函数的名称分别如表1所示。

在程序运行以后,当用户单击某个菜单项时,应该把用户的选择保存起来,以便随后的绘图操作使用。因此在CGraphicView类中添加一个私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述: private: UINT m_nDrawType; 接着,在视类的构造函数中将此变量初始化为0,程序代码如下: CGraphicView::CGraphicView() { // TODO: add construction code here m_nDrawType=0; } 利用switch/case语句,来分别完成相应图形的绘制。当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。程序代码如下:void CGraphicView::OnDot() { // TODO: Add your command handler code here m_nDrawType=1; } void CGraphicView::OnLine() { // TODO: Add your command handler code here m_nDrawType=2; } void CGraphicView::OnRectangle() { // TODO: Add your command handler code here m_nDrawType=3; } void CGraphicView::OnEllipse() { // TODO: Add your command handler code here m_nDrawType=4;

VC++单文档程序的设计(1)

教案 2007 ~2008 学年第一学期 主讲教师 课程名称面向对象程序设计(VC++) 课程类别专业基础课 学时及学分80、4 授课班级 使用教材 VC++的使用及面向对象软件工程实例分析 系(院、部) 教研室(实验 室) 计算机应用教研室

课时授课计划 课次序号: 一、课题: ch5 单文档程序编程(1)字体与绘图 二、课型:讲授 三、目的要求: 1、理解设备环境类CDC及其派生类的功能与使用方法。 2、理解图形设备接口GDI类的功能及使用方法。 3、学会字体设置和文本输出。 4、学会简单的图形绘制方法。 四、重点、难点: 重点容:字体设置与文本输出、图形绘制。 难点:正确理解CDC类和GDI类的功能与使用方法。 五、教学方法及手段: 采用案例教学,在实例中理解CDC类和GDI类的使用,重点讲解其中的几个功能,其他的要求学生课下逐步深入学习,达到举一反三的目的。 六、参考资料: 《VC++实用教程》(第二版)阿奇编著,电子工业第8章 《C++面向对象程序设计》涛编著,高等教育,第10章 七、作业: 简答:习题5.1 , 5.2 , 5.6 设计:(1) 5.9 (2)单文档实验容1:编写单文档应用程序,当用户双击鼠标左键时,能在客户区画一个椭圆,并用45度交叉线填充。 八、授课记录: 九、授课效果分析:

十、教学进程(教学容、教学环节及时间分配等) 1、复习 单文档应用程序的特点:应用程序类、主框架类、文档类、视图类 文档与视图的关系 2、导入课题 如何再单文档窗口中按照需要输出文本、绘制图形呢? 利用CDC类和GDI接口类,它封装了绘图所需要的所有函数,是用户编写图形和文字处理程序必不可少的。 3、教学容 ch5.1 概述 一、设备环境类: 1、CDC类: 设备环境是Windows保存的一个数据结构,该结构包含应用程序向设备输出时所需要的信息,例如图形是在屏幕上输出还是在打印机上输出。 为了让用户使用一些特殊的设备环境,MFC还提供了CDC类的派生类, CPaintDC、CClientDC、CwindowDC、 CmetaFileDC 其中,前两个较常用。 2、CDC类的主要功能: SelectObject():选择绘图对象,返回被替代的对象的指针,常用于选择画笔、画刷、字体、图片等。 MoveTo():移动当前位置 LineTo():从当前位置画线 Ellipse():画椭圆 TextOut():用当前字体在指定位置输出文本 二、颜色和颜色对话框的使用 绘图和显示文本时都要按照指定的(或默认的)颜色执行。 常用的颜色空间右RGB和YUV两种。 其中,RGB颜色空间选用红、绿、蓝三种颜色的分量配比来表示,即三基色原理。 而YUV颜色空间用亮度(Y)和色差(V、U)表示。 在MFC中采用RGB颜色空间。编程设置颜色的方法有两种:

基于MFC的OpenGL绘图

基于MFC的OpenGL绘图 本文更新版本请点击 [置顶]《基于MFC的OpenGL编程》系列文章 一、简介 GDI是通过设备句柄(Device Context以下简称"DC")来绘图,而OpenGL则需要绘制环境(Rendering Context,以下简称"RC")。每一个GDI命令需要传给它一个DC,但与GDI不同,OpenGL使用当前绘制环境(RC)。一旦在一个线程中指定了一个当前RC,在此线程中其后所有的OpenGL命令都使用相同的当前RC。虽然在单一窗口中可以使用多个RC,但在单一线程中只有一个当前RC。下面我将首先产生一个OpenGL RC并使之成为当前RC,这将分为三个步骤:设置窗口像素格式;产生RC;设置为当前RC。 二、MFC中的OpenGL基本框架 1、首先创建工程 用AppWizard产生一个MFC EXE项目,其他默认即可。 2、将此工程所需的OpenGL文件和库加入到工程中 在工程菜单中,选择"Build"下的"Settings"项。单击"Link"标签,选择"General"目录,在Object/Library Modules的编辑框中输入"opengl32.lib glu32.lib glut.lib glaux.lib"(注意,输入双引号中的内容,各个库用空格分开;否则会出现链接错误),选择"OK"结束。然后打开文件"stdafx.h",加入下列头文件: #include #include 3、改写OnPreCreate函数并给视图类添加成员函数和成员变量

OpenGL需要窗口加上WS_CLIPCHILDREN(创建父窗口使用的Windows风格,用于重绘时裁剪子窗口所覆盖的区域)和WS_CLIPSIBLINGS(创建子窗口使用的Windows风格,用于重绘时剪裁其他子窗口所覆盖的区域)风格。把OnPreCreate改写成如下所示:BOOL COpenGLDemoView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.style |= (WS_CLIPCHILDREN | WS_CLIPSIBLINGS); return CView::PreCreateWindow(cs); } 产生一个RC的第一步是定义窗口的像素格式。像素格式决定窗口着所显示的图形在内存中是如何表示的。由像素格式控制的参数包括:颜色深度、缓冲模式和所支持的绘画接口。在下面将有对这些参数的设置。我们先在COpenGLDemoView的类中添加一个保护型的成员函数BOOL SetWindowPixelFormat(HDC hDC)(用鼠标右键添加)和保护型的成员变量:int m_GLPixelIndex;并编辑其中的代码如下: BOOL COpenGLDemoView::SetWindowPixelFormat(HDC hDC) {//定义窗口的像素格式 PIXELFORMATDESCRIPTOR pixelDesc= { sizeof(PIXELFORMATDESCRIPTOR), 1, PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL| PFD_DOUBLEBUFFER|PFD_SUPPORT_GDI, PFD_TYPE_RGBA, 24, 0,0,0,0,0,0, 0, 0,

基于MFC的简单画图程序实验

简单画图程序 【实验目的】 本实验目的是通过构建基于MFC的windows画图程序,使学生: (1) 理解MFC应用程序的运行机制 (2) 掌握使用MFC构建Windows应用程序的基本结构及编程的基本方法 (3) 理解和掌握MFC应用程序消息处理机制及应用 (4) 掌握类向导(ClassWizard)的使用 【实验要求】 (1) 必须做好实验原理的预习。 (2) 需要对提供的程序代码进行分析,并明确实验时还应在何处添加哪些语句。 【实验环境】 Microsoft Windows XP Microsoft Visual C++ 6.0 1 基本功能描述 1) 在单文档菜单中,在菜单行中可插入一个菜单项,命名为绘图,在下拉菜单中可分别设置绘制的图形形状,如直线、矩形及椭圆,线宽选项,有1-5可供选择,还可以设置线色以及填充色,通过弹出的颜色对话框选择需要的颜色,如果不选择线宽、线色以及填充色,则按默认的画笔,画刷来绘制选择的图形。 2) 选择好图形后,通过鼠标可以绘制出相应的直线,矩形或椭圆,鼠标的按下确定图形的起点,鼠标的拖动则确定了图形的终点,即通过鼠标的拖动来决定图形的大小,当鼠标弹起,此图形则绘制完毕。 3) 增添工具栏,设置绘制的图形形状,线色以及填充色,可更方便地选择相应的功能。 2 设计思路 1) 对需要用到的变量进行初始化。 2) 选择相应的图形之后就响应相应的消息处理函数,给shape赋对应的值。选择不同

3) 鼠标的按下响应函数OnLButtonDown(),捕捉鼠标当前位置得到起点的坐标,鼠标的拖动响函数OnMouseMove()改变终点的坐标,鼠标的弹起响应OnLButtonUp(),确定终点坐标,刷新,得到绘制图形。 4) 选择图形或其它属性,可进行下一次绘制。

相关主题
文本预览
相关文档 最新文档