首先打开VC++,新建一个单文档应用程序;

按下图,为View类添加消息处理函数,变更单文档窗体背景色为黑色;

在菜单中添加如下菜单;

为菜单添加消息处理函数;添加在View类中;

在View类头文件中添加三个成员变量;

int zbtype;//坐标系类别
int w,h; //存储窗口宽和高
int w2,h2; //存储窗口宽和高的一半

在View类构造函数中初始化成员变量;

CZbdemoView::CZbdemoView()
{
// TODO: add construction code here
zbtype=1;

w=0;

h=0;
w2=0;
h2=0;
}

三个菜单的消息处理函数中更改坐标系类型,然后刷新窗口;

void CZbdemoView::OnMenuitem32771() 
{
// TODO: Add your command handler code here
zbtype=1;
Invalidate();
}

void CZbdemoView::OnMenuitem32772() 
{
// TODO: Add your command handler code here
zbtype=2;
Invalidate();
}

void CZbdemoView::OnMenuitem32773() 
{
// TODO: Add your command handler code here
zbtype=3;
Invalidate();
}

改变窗口背景为黑色的代码;

BOOL CZbdemoView::OnEraseBkgnd(CDC* pDC) 
{
// TODO: Add your message handler code here and/or call default

CRect rectClient;
    GetClientRect(&rectClient);

pDC->FillSolidRect(&rectClient, RGB(0,0,0) );
    return TRUE;

//return CView::OnEraseBkgnd(pDC);
}

在View类OnDraw函数中按坐标系类别绘制坐标系;

void CZbdemoView::OnDraw(CDC* pDC)
{
CZbdemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CPen pen(PS_SOLID,1,RGB(255,0,0));//构造画笔对象
CPen *pOldPen;
pOldPen=pDC->SelectObject(&pen);

RECT rect1;
GetClientRect(&rect1);
w=rect1.right;
h=rect1.bottom;
w2=rect1.right/2;
h2=rect1.bottom/2;

switch(zbtype)
{
case 1:
pDC->MoveTo(0,h2);
pDC->LineTo(w,h2);
pDC->MoveTo(w2,0);
pDC->LineTo(w2,h);
break;
case 2:
pDC->MoveTo(6,h-6);// 距离边缘6个像素
pDC->LineTo(w,h-6);
pDC->MoveTo(6,6);
pDC->LineTo(6,h-6);
break;
case 3:
pDC->MoveTo(6,h-6);// 距离边缘6个像素
pDC->LineTo(w,h-6);
pDC->MoveTo(w2,0);
pDC->LineTo(w2,h-6);
break;

}

pDC->SelectObject(pOldPen);//恢复先前的画笔
}

三种坐标系效果分别如下;箭头尚未画出;下回分解;如果未见到画的线,可检查坐标点计算是否正确;

使用VC++绘制坐标系相关推荐

  1. 基于easyX和vs使用c++绘制坐标系以及实时显示

    由于现在在windows下用c语言写一些算法,c语言并没有自己的图形界面库,所以在调试的时候很不方便.相信很多使用c语言开发的朋友都会为此而苦恼.所以最近我基于easyX写了一个实时绘制数据的程序,希 ...

  2. 详析VC中坐标系的建立

    详析VC中坐标系的建立 建立一个合适的 坐标系可以为我们的绘图带来很大的方便 .下面介绍一下如何在VC中建立我们想要的坐标系. 一 设备坐标和逻辑坐标 设备坐标(Device Coordinate)又 ...

  3. android 绘制坐标系(雷达探测界面)

    简介 在android中会经常用到自定义view来实现一些效果的显示,今天就举个例子,绘制一个像探测雷达的界面.雷达界面一般就是下面这种样子,我们下面就大概来仿照着这个图片做一下. 最终我做出来的效果 ...

  4. canvas绘制坐标系

    课程目标: 1.绘制坐标系需要用到什么核心函数? 2.步骤是什么? 3.源代码? 1.绘制坐标系需要用到什么核心函数? fill() beginPath() moveTo() lineTo() str ...

  5. VC++ 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能

    目录 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能 接上:VC+ ...

  6. vs2010 c# graphics绘制坐标系

    完整工程已经传到我的资源,需要可以去下载! 下载 在txt文件里写入坐标,绘制图形,例如x1,y1,x2,y2,x3,y3. 鼠标位于坐标系内,显示2条红色十字线,和坐标值,离开坐标系,2者消失. 源 ...

  7. VC++绘制铁路道岔

    绘制代码: void CDaocaView::OnDraw(CDC* pDC) {CDaocaDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: ...

  8. VC++ 绘制简单电子元件

    工具: http://blog.csdn.net/bcbobo21cn/article/details/44200205 demo工程: http://pan.baidu.com/s/1qYCE9rQ ...

  9. 用VC++绘制位图按钮

    MFC的CButton类提供Windows按钮控件的功能,从CButton类派生的CBitmapButton类封装了自绘制按钮的功能,使得程序员可以通过在按钮上绘制位图并为这些位图实例化类CBitma ...

最新文章

  1. linux终端密码星星,如何在Ubuntu终端中显示密码星号
  2. P2473 [SCOI2008]奖励关
  3. java 文件拷贝保留原来的属性,Java - 复制JPG,同时保留所有文件属性
  4. UI Personalization persistent DB database table
  5. 超详细设置 Idea 类注释模板和方法注释模板
  6. matlab调用ansys需要安装mpi,Ansys 14中Fluent并行计算MPI全程详解
  7. Java final修饰符的作用,Java中的final修饰符
  8. 单元格宽度_excel单元格如何设成正方形或者1mm的正方形
  9. java解压缩.zip文件
  10. js创建对象的几种常用方式小结(推荐)
  11. 文件目录在Visual C++ 2005中使用 GNU Scientific Library
  12. linux 建立vnc,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  13. 18位身份证号码的编排规则
  14. 如何演示扇形面积公式推导过程
  15. 网页制作:制作一个官网
  16. matlab:双或三方演化博弈,lotka-Volterra 1.双方演化博弈
  17. 公网访问阿里云RDS云数据库
  18. java excel 边框颜色_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
  19. matlab atem(),非特定人的英文
  20. 网站访问全过程涉及的网络协议详解

热门文章

  1. Linux环境变量配置出错,导致登录不了......
  2. CTFshow php特性 web139
  3. [YTU]_2718 (求最高同学位置)
  4. Fast Radial Symmetry Transform/快速径向对称变换
  5. 第二十五讲 用线性代数解微分方程组
  6. Windows10下搭建Java环境(最新教程)
  7. 盛佳:搜索是有目的的发现,发现是无目的的搜索
  8. ORA-01722: invalid number
  9. Spring入门第一例
  10. Mysql 解压版 安装时候的注意事项