工具:

http://blog.csdn.net/bcbobo21cn/article/details/44200205

demo工程:

http://pan.baidu.com/s/1qYCE9rQ

新建一个工程

更改窗口标题;

添加工具栏图标;

添加工具栏按钮的状态栏提示;

添加工具栏按钮的事件函数,此时需要手动添加;

视类头文件手动添加

//{{AFX_MSG(CDzyjView)
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnDrawdz();  //手动添加
afx_msg void OnDrawdr();  //手动添加
afx_msg void OnDrawdg();  //手动添加
afx_msg void OnDrawerjg();  //手动添加
//}}AFX_MSG

视类实现文件添加

BEGIN_MESSAGE_MAP(CDzyjView, CView)
//{{AFX_MSG_MAP(CDzyjView)
ON_WM_LBUTTONDOWN()
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
ON_COMMAND(ID_BUTTONdz, CDzyjView::OnDrawdz)  //手动添加
ON_COMMAND(ID_BUTTONdr, CDzyjView::OnDrawdr)  //手动添加
ON_COMMAND(ID_BUTTONdg, CDzyjView::OnDrawdg)  //手动添加
ON_COMMAND(ID_BUTTONerjg, CDzyjView::OnDrawerjg)  //手动添加
END_MESSAGE_MAP()

新加工具栏按钮的响应函数中设定绘制元件类别

void CDzyjView::OnDrawdz()
              {
                   //MessageBox("dz","提示",MB_OK);
yjtype=1;
               }

视类头文件添加成员变量和函数

private:
CPoint point1;
int yjtype;
CPoint Four_Point[4];

// Operations
public:
void Drawdz(CDC *pDC);
void Drawdr(CDC *pDC);
void Drawdg(CDC *pDC);
void Drawerjg(CDC *pDC);

添加鼠标单击响应函数

鼠标左键按下时,获取绘制点中心坐标;刷新窗口;

void CDzyjView::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
point1.x=point.x;
point1.y=point.y;
Invalidate();
CView::OnLButtonDown(nFlags, point);
}

画电阻函数

void CDzyjView::Drawdz(CDC *pDC)
{
pDC->MoveTo(point1.x-20,point1.y);
pDC->LineTo(point1.x-12,point1.y);
pDC->MoveTo(point1.x+20,point1.y);
pDC->LineTo(point1.x+12,point1.y);
Four_Point[0].x=point1.x-12;
Four_Point[0].y=point1.y-5;
Four_Point[1].x=point1.x+12;
Four_Point[1].y=point1.y-5;
Four_Point[2].x=point1.x+12;
Four_Point[2].y=point1.y+5;
Four_Point[3].x=point1.x-12;
Four_Point[3].y=point1.y+5;
pDC->Polygon(Four_Point,4);
//pDC->Polyline(Four_Point,4);

/*
pDC->MoveTo(Four_Point[0]);
pDC->LineTo(Four_Point[1]);
pDC->MoveTo(Four_Point[1]);
pDC->LineTo(Four_Point[2]);
pDC->MoveTo(Four_Point[2]);
pDC->LineTo(Four_Point[3]);
pDC->MoveTo(Four_Point[3]);
pDC->LineTo(Four_Point[0]);
*/
}

在OnDraw中调用画电阻函数

void CDzyjView::OnDraw(CDC* pDC)
{
CDzyjDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here

switch(yjtype)
{
case 1:
Drawdz(pDC);
break;
case 2:
break;
default:
break;
}
}

看下效果;

关于  local function definitions are illegal 错误

F:\vc6prj\图形图像\dzyj\dzyjView.cpp(80) : error C2601: 'OnPreparePrinting' : local function definitions are illegal
......

执行 cl.exe 时出错.

编译时出现一堆  local function definitions are illegal 错误;一个可能原因是丢失了反大括号;
void CDzyjView::OnDraw(CDC* pDC)
{
CDzyjDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here

switch(yjtype)
{
case 1:
Drawdz(pDC);
break;
case 2:
break;
default:
break;
}
}     // 丢失此大括号会产生 local function definitions are illegal

今天先到这里......

VC++ 绘制简单电子元件相关推荐

  1. autocad2007二维图画法_cad怎样绘制简单的二维图形

    CAD绘制二维图形非常的简单,大家经常用它来画图,下面是学习啦小编带来关于cad怎样绘制简单的二维图形的内容,希望可以让大家有所收获! cad绘制简单二维图形的方法 1.绘图菜单绘图菜单是绘制图形最基 ...

  2. python画折线图代码-python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

  3. python画折线图详解-python绘制简单折线图代码示例

    1.画最简单的直线图 代码如下: import numpy as np import matplotlib.pyplot as plt x=[0,1] y=[0,1] plt.figure() plt ...

  4. java canvas 画图片_[Java教程][HTML5] Canvas绘制简单图片

    [Java教程][HTML5] Canvas绘制简单图片 0 2016-05-13 13:00:04 获取Image对象,new出来 定义Image对象的src属性,参数:图片路径 定义Image对象 ...

  5. WPF绘制简单常用的Path

    原文:WPF绘制简单常用的Path 写代码出身的我们经常需要使用一些简单 但是不是规则图形的Path 但限于美工功底有限 不知道怎么去画 下面我告诉大家一些简单的小技巧 用代码来画Path 个人还是比 ...

  6. Matlab:绘制简单能量的接收机工作特性曲线(Energy_detection_simulation_ok)

    Matlab:绘制简单能量的接收机工作特性曲线(Energy_detection_simulation_ok) 目录 输出结果 实现代码 输出结果 实现代码 % This code is to plo ...

  7. 【Qt】2D绘图之绘制简单的图形

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 绘制图形 04. 画笔和画刷 05. 绘制弧线 06. 附录 01. 概述 Qt中提供了强大的2D绘图系统,可以使用同一A ...

  8. [Qt教程] 第11篇 2D绘图(一)绘制简单图形

    [Qt教程] 第11篇 2D绘图(一)绘制简单图形 楼主  发表于 2013-4-23 12:52:35 | 查看: 1398| 回复: 5 绘制简单图形 版权声明 该文章原创于Qter开源社区,作者 ...

  9. java 绘制长方形_Java入门:绘制简单图形

    在上一节,我们学习了如何使用swing和awt工具创建一个空的窗口,本节学习如何绘制简单图形. 基本绘图介绍 Java中绘制基本图形,可以使用Java类库中的Graphics类,此类位于java.aw ...

最新文章

  1. 如何修改html页眉页脚,如何使用标准页眉和页脚修改/更新一组html文件
  2. 进程环境详解(四)---getenv、putenv和setenv函数详解
  3. 笔记本电脑linux系统下载,给笔记本电脑装Linux系统
  4. spring boot Redis使用
  5. php crypt mysql password_使用PHP 5.5的password_hash和password_verify函数
  6. 严重: StandardServer.await: create[localhost:8005]
  7. Repository和dao
  8. 大白话说说 朴素贝叶斯
  9. Atitit.request http乱码的设计防止 检测与解决最近实践p825 attilax总结.doc
  10. oppo9s刷机教程_OPPOR9S刷机包
  11. z变换与s变换之间的转换(一些零碎且不严谨的想法)
  12. 模式识别学习笔记——1(线性分类器)
  13. 首届CCF计算机职业资格认证考试题解(C++)
  14. 制作js原生瀑布流插件
  15. Learning with Pseudo-Ensembles
  16. 艺多不压身 -- 目录
  17. [MySQL 工具] pt-query-digest使用出错问题分析Can't locate Time/HiRes.pm in @INC
  18. java设计模式之模板
  19. H5首屏图片加载优化
  20. 国内外优秀的垂直搜索引擎

热门文章

  1. 在方法的形参位置使用@Qualifier注解||@Autowired 与@Resource的区别
  2. EasyStruct.js轻松创建可填入式html模板结构
  3. 将excel的数据导入到mysql数据表
  4. Docker selenium自动化 - Python调用容器实例跑自动化查天气实例演示,docker selenium自动化环境部署过程
  5. CTFshow php特性 web138
  6. CTFshow 命令执行 web66
  7. Conan and Agasa play a Card Game
  8. poj 3104 Drying
  9. 径向基函数插值(4)三维数据的插值
  10. linux db2乱码,DB2乱码(开始和结束,字符串中间没有好的办法)