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

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

定义类的变量 ULONG_PTR   gdiplusToken;

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

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

在ExitInstance()中添加:

  1. int CGDALDesktopApp::ExitInstance()
  2. {
  3. //TODO: 处理可能已添加的附加资源
  4. AfxOleTerm(FALSE);
  5. GdiplusShutdown(gdiplusToken);
  6. return CWinAppEx::ExitInstance();
  7. }

添加绘制的代码:

  1. void CGDALDesktopView::OnDraw(CDC* pDC)
  2. {
  3. CGDALDesktopDoc* pDoc = GetDocument();
  4. ASSERT_VALID(pDoc);
  5. if (!pDoc)
  6. return;
  7.  
  8. //Graphics graphics(*pDC);
  9. Graphics g( pDC->GetSafeHdc() );
  10. //建立画笔
  11. Pen pen_black(Color::Black);
  12. Pen pen_white(Color::White);
  13. //使用画笔绘制图形
  14. pen_black.SetWidth(); //设置画笔宽度
  15. pen_black.SetStartCap(LineCapRoundAnchor); //设置开始笔帽
  16. pen_black.SetEndCap(LineCapArrowAnchor); //设置结束笔帽
  17. g.DrawLine(&pen_black, , , , );
  18. Rect rect1(,, , );
  19. Rect rect2( + , , , );
  20. Rect rect3( + *, , , );
  21. Rect rect4( + *, , , );
  22. g.DrawRectangle(&pen_black, rect1);
  23. g.DrawRectangle(&pen_black, rect2);
  24. g.DrawRectangle(&pen_black, rect3);
  25. g.DrawRectangle(&pen_black, rect4);
  26. //建立画刷
  27. //实色画刷
  28. SolidBrush brush_black(Color::Black);
  29. SolidBrush brush_white(Color::White);
  30. SolidBrush brush_blue(Color::Blue);
  31. g.FillRectangle(&brush_blue, rect1);
  32. //网格画刷
  33. HatchBrush brush_hatch( HatchStyleDiagonalBrick, Color(, , , ), Color(, , , ));
  34. g.FillRectangle(&brush_hatch, rect2);
  35. //贴图画刷
  36. Image image(L"res\\qq.gif");
  37. TextureBrush brush_texture(&image);
  38. g.FillRectangle(&brush_texture, rect3);
  39. //渐变画刷(线形渐变)
  40. LinearGradientBrush brush_gradient_line( Point(, ), Point(, ),Color(, , , ), Color(, , , ));
  41. g.FillRectangle(&brush_gradient_line, rect4);
  42. //渐变画刷(路径渐变)
  43. //PathGradientBrush......................
  44. //贴图画笔
  45. Pen pen_texture(&brush_texture, );
  46. g.DrawEllipse(&pen_texture, , , ,);
  47. //启动抗锯齿功能
  48. pen_black.SetWidth();
  49. g.SetSmoothingMode(SmoothingModeAntiAlias);
  50. g.DrawLine(&pen_black, , , , );
  51. //绘制图像
  52. // 不进行缩放
  53. g.DrawImage(&image, ,);
  54. // 使用低质量的插补算法
  55. g.SetInterpolationMode(InterpolationModeNearestNeighbor);
  56. g.DrawImage( &image, Rect(,, , ));
  57. // 使用中等质量的插补算法
  58. g.SetInterpolationMode(InterpolationModeHighQualityBilinear);
  59. g.DrawImage( &image, Rect(,, , ));
  60. // 使用高质量的插补算法
  61. g.SetInterpolationMode(InterpolationModeHighQualityBicubic);
  62. g.DrawImage( &image, Rect(,, , ));
  63. //路径
  64. GraphicsPath path1;
  65. path1.AddLine(, , ,);
  66. path1.AddArc(, , , , , -);
  67. g.DrawPath(&pen_black, &path1);
  68. g.FillPath(&brush_black, &path1);
  69. //区域
  70. GraphicsPath pathOuter;
  71. pathOuter.AddRectangle(Rect(, , ,));
  72. GraphicsPath pathInner;
  73. pathInner.AddEllipse(Rect(, , ,));
  74. Region rgn(&pathOuter);
  75. rgn.Exclude(&pathInner);
  76. g.FillRegion(&brush_blue, &rgn);
  77. // TODO: 在此处为本机数据添加绘制代码
  78. }

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. JavaScript系列:常用方法

    文本框输入实时验证身份证号 charAt(索引)<=>indexOf(字符) <!DOCTYPE html> <head> <meta charset=&qu ...

  2. 【转】区别和认识.Net四个判等函数

    原文地址:不详 .Net有四个判等函数?不少人看到这个标题,会对此感到怀疑.事实上确是如此,.Net提供了ReferenceEquals.静态Equals,具体类型的Equals以及==操作符这四个判 ...

  3. Linux常用命令(持续更新中)

    cd 目录名 :进入某个目录 ls :列出当前目录的内容 locate 文件名/目录名:寻找文件.目录 find 目录名1 -name 文件名/目录名2 :在目录1中寻找目录2 whereis  文件 ...

  4. Ant Tasks 使用总结

    xmlproperty http://ant.apache.org/manual/Tasks/xmlproperty.html Ant的xmlproperty的Task能直接读取一个xml文件以生成相 ...

  5. 2016.07.14,英语,《Vocabulary Builder》Unit 25

    verb: comes from the Latin verbum, meaning 'word'. verbally: ['vɜːbəli] adv. 口头地,词句地, 逐字地 verbalize: ...

  6. HDR the Bungie Way PPT and demo from MSFT

    Gamefest 2006 - HDR the Bungie Way Posted By: Falagard <falagard@hotmail.com> Date: 4/26/07 9: ...

  7. [ZZ] The Naked Truth About Anisotropic Filtering

    http://www.extremetech.com/computing/51994-the-naked-truth-about-anisotropic-filtering In the seemin ...

  8. GTX 770 (GK 104)

    上周的这个时候,NVIDIA GeForce 700系列的旗舰产品GTX 780正式发布,传闻已久的GTX 700家族终于来了!虽然没有任何新架构.新特性的旗舰卡发布总让人觉得少点什么.但从性能上来说 ...

  9. /etc/hosts.conf

    一 作用       指定如何解析主机域名.可设置网络安全. 二 参数说明      默认情况,/etc/hosts.conf 文件有如下内容——      order hosts,bind     ...

  10. Rails--bundle exec rake db:migrate

    --新建表: def up create_table :[TABLE_NAME] do |t| t.column :[NUM], :integer t.column :[NAME], :string ...