概述
先前,在“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到画出图形的完整过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复