VS2010,新建MFC项目,在头文件stdafx.h中添加:

 #include <gdiplus.h>
using namespace Gdiplus;
#pragma comment (lib,"Gdiplus.lib")

定义类的变量 ULONG_PTR   gdiplusToken;

在BOOL CGDALDesktopApp::InitInstance()中添加:

 GdiplusStartupInput gdiplusStartupInput;
2 GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);

在ExitInstance()中添加:

 int CGDALDesktopApp::ExitInstance()
{
//TODO: 处理可能已添加的附加资源
AfxOleTerm(FALSE);
GdiplusShutdown(gdiplusToken);
return CWinAppEx::ExitInstance();
}

添加绘制的代码:

 void CGDALDesktopView::OnDraw(CDC* pDC)
{
CGDALDesktopDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return; //Graphics graphics(*pDC);
Graphics g( pDC->GetSafeHdc() );
//建立画笔
Pen pen_black(Color::Black);
Pen pen_white(Color::White);
//使用画笔绘制图形
pen_black.SetWidth(); //设置画笔宽度
pen_black.SetStartCap(LineCapRoundAnchor); //设置开始笔帽
pen_black.SetEndCap(LineCapArrowAnchor); //设置结束笔帽
g.DrawLine(&pen_black, , , , );
Rect rect1(,, , );
Rect rect2( + , , , );
Rect rect3( + *, , , );
Rect rect4( + *, , , );
g.DrawRectangle(&pen_black, rect1);
g.DrawRectangle(&pen_black, rect2);
g.DrawRectangle(&pen_black, rect3);
g.DrawRectangle(&pen_black, rect4);
//建立画刷
//实色画刷
SolidBrush brush_black(Color::Black);
SolidBrush brush_white(Color::White);
SolidBrush brush_blue(Color::Blue);
g.FillRectangle(&brush_blue, rect1);
//网格画刷
HatchBrush brush_hatch( HatchStyleDiagonalBrick, Color(, , , ), Color(, , , ));
g.FillRectangle(&brush_hatch, rect2);
//贴图画刷
Image image(L"res\\qq.gif");
TextureBrush brush_texture(&image);
g.FillRectangle(&brush_texture, rect3);
//渐变画刷(线形渐变)
LinearGradientBrush brush_gradient_line( Point(, ), Point(, ),Color(, , , ), Color(, , , ));
g.FillRectangle(&brush_gradient_line, rect4);
//渐变画刷(路径渐变)
//PathGradientBrush......................
//贴图画笔
Pen pen_texture(&brush_texture, );
g.DrawEllipse(&pen_texture, , , ,);
//启动抗锯齿功能
pen_black.SetWidth();
g.SetSmoothingMode(SmoothingModeAntiAlias);
g.DrawLine(&pen_black, , , , );
//绘制图像
// 不进行缩放
g.DrawImage(&image, ,);
// 使用低质量的插补算法
g.SetInterpolationMode(InterpolationModeNearestNeighbor);
g.DrawImage( &image, Rect(,, , ));
// 使用中等质量的插补算法
g.SetInterpolationMode(InterpolationModeHighQualityBilinear);
g.DrawImage( &image, Rect(,, , ));
// 使用高质量的插补算法
g.SetInterpolationMode(InterpolationModeHighQualityBicubic);
g.DrawImage( &image, Rect(,, , ));
//路径
GraphicsPath path1;
path1.AddLine(, , ,);
path1.AddArc(, , , , , -);
g.DrawPath(&pen_black, &path1);
g.FillPath(&brush_black, &path1);
//区域
GraphicsPath pathOuter;
pathOuter.AddRectangle(Rect(, , ,));
GraphicsPath pathInner;
pathInner.AddEllipse(Rect(, , ,));
Region rgn(&pathOuter);
rgn.Exclude(&pathInner);
g.FillRegion(&brush_blue, &rgn);
// TODO: 在此处为本机数据添加绘制代码
}

MFC和GDI+一起使用的更多相关文章

  1. MFC 用gdi绘制填充多边形区域

    MFC 用gdi绘制填充多边形区域 这里的代码是实现一个三角形的绘制,并用刷子填充颜色 在OnPaint()函数里面 运用的是给定的三角形的三个点,很多个点可以绘制多边形 CBrush br(RGB( ...

  2. mfc配置GDI+有106个错误

    mfc配置GDI+有106个错误,处理如下,参考http://bbs.csdn.net/topics/380054079 一开始#include...放在stdafx.h里有错误,后来上面修改好了,放 ...

  3. VS2010 MFC 使用GDI+给图片添加汉字

    1.配置GDI+ VS2010自带GDI+,直接使用. (1)首先要添加头文件和库 #pragma comment( lib, "gdiplus.lib" ) #include & ...

  4. MFC用GDI+动感歌词的制作

    源代码:http://download.csdn.net/detail/nuptboyzhb/4219669 源代码: 1.       插入一个对话框的资源,删除默认控件,并为对话框创建一个类,命名 ...

  5. MFC GDI绘图基础

    一.关于GDI的基本概念 什么是GDI? Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上. 在Wind ...

  6. scxml 图像展示器 (基于C++ MFC GDI tinyxpath的实现)

    以前的时候学习新东西没有总结的习惯,周末把以前研究的东西翻了翻,稍微总结下. Scxml是w3c出来的基于状态机的对话脚本语言标准,具体内容可以谷歌到,这里讲述自己开发的一个把scxml转化为可交互图 ...

  7. GDI+编程说明及小结

    原文地址:http://blog.csdn.net/byxdaz/article/details/5972759 GDI+(Graphics Device Interface Plus图形设备接口加) ...

  8. MFC映射

    所有CDC输出函数最终都会输出到物理平面(屏幕窗口.打印纸等).这些物理平面的单位量化往往多种多样,比如像素.打印点.英寸.毫米等等.这样可能会造成很多混乱,所以CDC输出对所有物理平面进行统一抽象化 ...

  9. GDI+编程小结

    GDI+(Graphics Device Interface Plus图形设备接口加)是Windows XP和Windows Server 2003操作系统的子系统,也是.NET框架的重要组成部分,负 ...

随机推荐

  1. BZOJ 2120 数颜色(带修改的莫队)

    2120: 数颜色 Time Limit: 6 Sec  Memory Limit: 259 MB Submit: 3478  Solved: 1342 [Submit][Status][Discus ...

  2. discuz全局数组变量 后台各项设置 完整版

    $_G 保存了 Discuz! 中所有的预处理数据 缓存能够很好的提高程序的性能,一些配置数据没必要每次都查询数据库,只要在修改了的时候更新下缓存即可. Discuz! 中所有的缓存保存在 $_G[c ...

  3. 解决Windows照片查看器中图片显示发黄的问题

    这其实是ICC颜色配置的问题,发生在Windows7自动更新下载了显示器的驱动后,自动安装后显示器的颜色配额制文件自动改为新下载的配置,导致显卡和显示器颜色配置不兼容的问题,不过不用担心,非常容易解决 ...

  4. ecshop session机制

    ecshop session机制 2014-06-12    1455     懒人程序   ecshop的cls_session.php分析,主要是讲述ecshop中的session机制.我们都知道 ...

  5. TVP5150摄像头

    工作中看同事摄像头配置的时候有2种格式PAL.NTSC.如果摄像头的格式配置不对的话会出现重影.黑白没颜色.闪屏等等. TVP5150  PAL.NTSC配置.http://bbs.csdn.net/ ...

  6. Remote 的远程使用

        <script type="text/javascript">        $(function () {            //每次隐藏的时候 删除页面 ...

  7. ubuntu中一些配置文件含义

    /var/log/apache2/mod_jk.log                          apache2 mod_jk错误日志错误 /conf/server.xml           ...

  8. Demonstrating One-Shot Execution TimerTask Timer

    Listing -. Demonstrating One-Shot Execution import java.util.Timer; import java.util.TimerTask; publ ...

  9. Python 虚拟环境Virtualenv

    本人也是Python爱好者,众所周知,Python扩展多,每次为了测试,安装各种各样的扩展,这样导致本地的Python环境非常混乱,就有人想到搞个隔离环境  和 本地环境没有关系,随时可以删除这个隔离 ...

  10. 最有用的Linux命令行使用技巧集锦

    最近在Quora上看到一个问答题目,关于在高效率Linux用户节省时间Tips.将该题目的回答进行学习总结,加上自己的一些经验,记录如下,方便自己和大家参考. 下面介绍的都是一些命令行工具,这些工具在 ...