使用VC++绘制坐标系
首先打开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++绘制坐标系相关推荐
- 基于easyX和vs使用c++绘制坐标系以及实时显示
由于现在在windows下用c语言写一些算法,c语言并没有自己的图形界面库,所以在调试的时候很不方便.相信很多使用c语言开发的朋友都会为此而苦恼.所以最近我基于easyX写了一个实时绘制数据的程序,希 ...
- 详析VC中坐标系的建立
详析VC中坐标系的建立 建立一个合适的 坐标系可以为我们的绘图带来很大的方便 .下面介绍一下如何在VC中建立我们想要的坐标系. 一 设备坐标和逻辑坐标 设备坐标(Device Coordinate)又 ...
- android 绘制坐标系(雷达探测界面)
简介 在android中会经常用到自定义view来实现一些效果的显示,今天就举个例子,绘制一个像探测雷达的界面.雷达界面一般就是下面这种样子,我们下面就大概来仿照着这个图片做一下. 最终我做出来的效果 ...
- canvas绘制坐标系
课程目标: 1.绘制坐标系需要用到什么核心函数? 2.步骤是什么? 3.源代码? 1.绘制坐标系需要用到什么核心函数? fill() beginPath() moveTo() lineTo() str ...
- VC++ 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能
目录 绘制线条 OnLButtonDown函数(DrawView.cpp) 利用SDK全局函数实现画线功能 利用MFC的CDC类实现画线功能 利用MFC的CClientDC类实现画线功能 接上:VC+ ...
- vs2010 c# graphics绘制坐标系
完整工程已经传到我的资源,需要可以去下载! 下载 在txt文件里写入坐标,绘制图形,例如x1,y1,x2,y2,x3,y3. 鼠标位于坐标系内,显示2条红色十字线,和坐标值,离开坐标系,2者消失. 源 ...
- VC++绘制铁路道岔
绘制代码: void CDaocaView::OnDraw(CDC* pDC) {CDaocaDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: ...
- VC++ 绘制简单电子元件
工具: http://blog.csdn.net/bcbobo21cn/article/details/44200205 demo工程: http://pan.baidu.com/s/1qYCE9rQ ...
- 用VC++绘制位图按钮
MFC的CButton类提供Windows按钮控件的功能,从CButton类派生的CBitmapButton类封装了自绘制按钮的功能,使得程序员可以通过在按钮上绘制位图并为这些位图实例化类CBitma ...
最新文章
- linux终端密码星星,如何在Ubuntu终端中显示密码星号
- P2473 [SCOI2008]奖励关
- java 文件拷贝保留原来的属性,Java - 复制JPG,同时保留所有文件属性
- UI Personalization persistent DB database table
- 超详细设置 Idea 类注释模板和方法注释模板
- matlab调用ansys需要安装mpi,Ansys 14中Fluent并行计算MPI全程详解
- Java final修饰符的作用,Java中的final修饰符
- 单元格宽度_excel单元格如何设成正方形或者1mm的正方形
- java解压缩.zip文件
- js创建对象的几种常用方式小结(推荐)
- 文件目录在Visual C++ 2005中使用 GNU Scientific Library
- linux 建立vnc,51CTO博客-专业IT技术博客创作平台-技术成就梦想
- 18位身份证号码的编排规则
- 如何演示扇形面积公式推导过程
- 网页制作:制作一个官网
- matlab:双或三方演化博弈,lotka-Volterra 1.双方演化博弈
- 公网访问阿里云RDS云数据库
- java excel 边框颜色_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)
- matlab atem(),非特定人的英文
- 网站访问全过程涉及的网络协议详解
热门文章
- Linux环境变量配置出错,导致登录不了......
- CTFshow php特性 web139
- [YTU]_2718 (求最高同学位置)
- Fast Radial Symmetry Transform/快速径向对称变换
- 第二十五讲 用线性代数解微分方程组
- Windows10下搭建Java环境(最新教程)
- 盛佳:搜索是有目的的发现,发现是无目的的搜索
- ORA-01722: invalid number
- Spring入门第一例
- Mysql 解压版 安装时候的注意事项