VC++绘图编程教程2015-04-08 13:30:27

( 3人已投票,[高质量] )
分享:
31.3K

设备环境介绍(Device Context,DC)

设备描述表或设备上下文,是一种Windows的数据结构。
在这个结构中保存了一些在绘图操作中使用的重要属性的参数,还包含了与图形输出设备的绘制属性有关的信息。
在Windows图形编程中,所有的绘图操作都是通过设备环境进行的。
设备环境可以用来向屏幕、打印机、图形文件或内存位图输出结果。
CDC(Class of Device-Context )类。
CDC类提供了大量的绘图函数、坐标映射函数、裁剪函数,可以通过这个类来方便地实现图形显示。
还有一些特殊的设备环境类都是从CDC类派生出来的。

MFC程序绘图的方法

在MFC应用程序中,一般情况下,很多绘图操作都是在视类的OnDraw()成员函数中进行的.
OnDraw()函数参数中自动有一个CDC的指针pDC,利用pDC调用CDC类的成员函数完成绘图操作。
另外,当用户需要立即绘制图像时,可以通过调用更新窗口函数Invalidate()使Windows送出WM_PAINT消息自动调用OnDraw()函数来重绘图形  

坐标系统

1. 设备坐标系统
x轴自左至右,y轴从上到下,坐标原点在屏幕左上角
2. 逻辑坐标系统
坐标为自下而上,坐标原点在屏幕左下角

在窗口用户区绘图

在OnDraw()函数中用参数CView类的指针pDC在屏幕上绘图:
以画线为例
void CImageView::OnDraw(CDC* pDC)
{
CImageDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
pDC->MoveTo(20,10);
pDC->LineTo(200,100);
}
演示程序: <画线MovetoLineto.avi>

画笔与线条图的绘制

画笔用来绘制直线、曲线以及各种几何图形轮廓等线条。
线条除了有颜色特性外,还有风格与宽度等特征
(1)创建新画笔对象
   CPen penBlue(PS_SOLID,5,RGB(0,0,255));
(2)把新画笔选进设备环境 ,同时保存系统原有画笔
    pOldPen=pDC->SelectObject(&penBlue);
(3)用新画笔绘图
 调用各种成员函数进行绘图
(4)把系统原有画笔选进设备环境
   pDC->SelectObject(pOldPen);
(5)删除新画笔
   penBlue.DeleteObject()

CDC::SelectObject()

Selects an object into the device context. The newly selected object replaces the previous object of the same type
Return Value
A pointer to the object being replaced.

绘制线条

移动画笔位置
用CDC成员函数MoveTo()
pDC->MoveTo(x1,y1) ;
绘制直线
用CDC成员函数LineTo()
pDC->LineTo(x2,y2) ;
演示程序: <使用CPen画线.avi>

在OnDraw函数中绘制线条

用笔(CPen对象)绘制宽度为5点红色的实线
void CImageView::OnDraw(CDC* pDC)
{

CPen penBlue(PS_SOLID,5,RGB(255,0,0)),*pOldPen;
pOldPen=pDC->SelectObject(&penBlue);
pDC->MoveTo(20,10);
pDC->LineTo(200,100);
pDC->SelectObject(pOldPen);
penBlue.DeleteObject();
}

。。。。。。


原文档PPT下载:

VC++绘图编程教程 VC++绘图编程.rar [登录雪炭网后可见]








头像

snowcoal
  • vc
  • 绘图编程
  • ppt

本文标签:

vc绘图编程ppt

收藏到我的私密空间

标题:VC++绘图编程教程

作者:柳岸花明

你暂未登录,请登录后才可收藏至您的私密空间 确认取消
雪炭网

键盘操作 更便捷 -雪炭网雪中送炭-乐趣无限