我是靠谱客的博主 伶俐水杯,最近开发中收集的这篇文章主要介绍在VC2010上MFC从配置GDI到画出图形的完整过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

先前,在“VC2010上配置GDI+(图像库)”中我完成了在win32工程中GDI+的配置。但是在尝试画图时,出现了错误,其具体代码如下:

// DrawRGB.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

//#include "afxwin.h"

 

int main()

{

         //声明全局变量:

                   Gdiplus::GdiplusStartupInputm_gdiplusStartupInput;

         ULONG_PTRm_pGdiToken;

 

         //在使用GDI+之前要进行安装,否则程序不会报错,但绘图不成功。安装方法如下:

         GdiplusStartupInputgdiplusStartupInput;

         ULONG_PTR           gdiplusToken;

         GdiplusStartup(&gdiplusToken,&gdiplusStartupInput, NULL);

                  

                   //usingGDI+

                   Graphicsmyg(this->GetDC()->m_hDC);

                   Penpen(Color(255,0,255));

                   SolidBrushbrush(Color(255,0,255));

 

                   CRectrect;

                   this->GetClientRect(&rect);

                   myg.DrawEllipse(&pen,30,30,100,100);

 

 

         //在最后使用完GDI+后,卸载gdi+,使用:

                   GdiplusShutdown(gdiplusToken);

 

}

后来发现,如果单独的使用WIN32平台进行图像的绘制工作将相当的麻烦,因为还要提供绘图的画布,才能画图。

立即转换方法,使用MFC的单文本模式创建工程, 最终成功的在窗体中画了一个圆:

其具体的配置实现方法如下:

1.      创建MFC项目:文件>新建>工程>MFC应用程序, 文件名取为“MFC_DrawRGB”. 选项目格式为当文本格式,点击完成,创建成功MFC项目

2.      点击编译,发现程序可以运行,继续下一步

3.      在stdafx.h中添加GDI+运行必须的头文件,其添加位置我选择在stdafx.h的最后,再下面是version的信息:

#include <comdef.h>

#include <gdiplus.h>

using namespace Gdiplus;

#pragma comment(lib,"gdiplus.lib")

4.      这样在编译的时候程序就可以识别出GDI+库的文件信息而不报错,但是为保险起见,在链接器的附加依赖项上也添加gdiplus.lib信息。工程>属性>配置属性>链接器>输入>附加依赖项>编辑添加“gdiplus.lib”

5.       在申明了ULONG_PTRgdiplusToken; 以后实现GDI+的初始化。具体步骤如下:使用ctrl F找到初始化函数InitInstance(), 其中有一个叫做BOOL CMFC_DrawRGBApp::InitInstance() 的, 在那块位子实现如图的代码:


6.      点击CMFC_DrawRGBApp::InitInstance()中的CMFC_DrawRGBApp,右键,转到定义,在public下添加两个成员:

ULONG_PTR m_gdiplusToken;

GdiplusStartupInput m_gdiplusStartupInput;

7.      在该派生类的ExitInstance()函数中加入:

GdiplusShutdown(m_gdiplusToken);

8.      现在可以画图了。在CMFC_DrawRGBView::OnDraw(CDC* /*pDC*/)下面画图:

void CMFC_DrawRGBView::OnDraw(CDC* /*pDC*/)

{

         CMFC_DrawRGBDoc*pDoc = GetDocument();

         ASSERT_VALID(pDoc);

         if(!pDoc)

                   return;

 

         //TODO: 在此处为本机数据添加绘制代码

         //usingGDI+

         Graphicsmyg(this->GetDC()->m_hDC);

         Penpen(Color(255,0,255));

         SolidBrushbrush(Color(255,0,255));

 

         CRectrect;

         this->GetClientRect(&rect);

         myg.DrawEllipse(&pen,30,30,100,100);

}

参考文件:

http://blog.csdn.net/feisy/article/details/2122518

http://blog.sina.com.cn/s/blog_4f91596001008otf.html

最后

以上就是伶俐水杯为你收集整理的在VC2010上MFC从配置GDI到画出图形的完整过程的全部内容,希望文章能够帮你解决在VC2010上MFC从配置GDI到画出图形的完整过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部