用VS2008的MFC写的CAD画图程序2017.12.15

一、实现的功能

1、程序可以画点、直线、矩形、椭圆

2、可以设置线宽、颜色、字体,可以看到线型示例

3、可以显示鼠标点的坐标,可以显示系统时间

4、在IDR_MAINFRAME字符串里面直接更改程序标题

5、画图文件的重绘。

6、程序用VS2008编写,个人觉得,VC6.0就像windowsXP

VS2008就像Win10,习惯了就好

二、实现的功能图片




三、实现的过程与代码

3.1、添加的菜单项

1、IDM_DOT 点 IDM_LINE 线 IDM_RECTANGLE 矩形 IDM_ELLIPSE 椭圆

IDM_COLOR颜色 IDM_FONT 字体 IDM_SETTING

3.2、添加的对话框资源

1、IDD_DLG_SETTING 设置 IDC_LINE_WIDTH 线宽(线型默认设置)IDC_SAMPLE 示例

3.3、添加的成员变量

1、CGraphicview

UNITm_nDrawType;//保存绘图选择,分别为1、2、3、4、初始化为0

CPointm_ptOrigin;//保存鼠标当前按下的点,初始化为0

COLORREFm_clr;//将当前所绘画的颜色保存下来,初始化为RGB(255,0,0)

 

UNITm_nLineWidth;//保存线宽值,然后在画图程序中使用,初始化为0

intm_nLineStyle;//保存线型,画图时使用,初始化为0

 

CFontm_font;//选择一种字体
CString m_strFontName;//保存所选字体的名称


CPtrArray m_ptrArray;//集合类的变量保存对象值

 

2、设置对话框增加了一个新类CSettingDlg

UNITm_nLineWidth;//保存对话框选择的线宽
int m_nLineStyle;//保存对话框选择的线型


3、图形保存与重绘

UINT m_nDrawType;//保存绘图选择

CPoint m_ptOrigin;//保存起点

CPoint m_ptEnd;//保存终点

COLORREFm_clr;//保存颜色

 

3.3代码的实现过程

1、所有变量在构造函数中初始化

CGraphicView::CGraphicView()

{

     m_nDrawType=0;

     m_ptOrigin=0;

     m_nLineWidth=0;

     m_nLineStyle=0;

     m_clr=RGB(255,0,0);

     m_strFontName="";

}

2、在CGraphicView类添加命令响应(添加事件处理程序)

同时设置变量UNIT m_nDrawType;//保存绘图选择,分别为1、2、3、4、表示

点、直线、矩形、椭圆



程序实现代码:

void CGraphicView::OnDot()

{

 m_nDrawType=1;

}

void CGraphicView::OnLine()

{

 m_nDrawType=2;

}

void CGraphicView::OnRectangle()

{

 m_nDrawType=3;

}

void CGraphicView::OnEllipse()

{

 m_nDrawType=4;

}

3、在CGraphicView类增加鼠标左键按下和鼠标左键松开两个消息响应函数


在左键按下的时候保存起点

在左键松开的时候,实现画图功能

程序代码实现如下:

void CGraphicView::OnLButtonDown(UINTnFlags, CPoint point)

{

    m_ptOrigin=point;

    CView::OnLButtonDown(nFlags, point);

  • 10
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值