MFC中如何使用GDI+绘制出图形?

MFC中如何使用GDI+绘制出图形?
1.新建了一个MFC的SDI项目,其中View类继承了CFormView类。
2.在View的cpp文件中,使用了下面语句用来调用GDI+库
#include
using namespace Gdiplus;
#pragma comment(lib, "gdiplus.lib")
3.在View的OnDraw函数中,加入以下语句:
Graphics graphics( pDC->m_hDC );
Graphics g(pDC->m_hDC);
g.DrawLine(&Pen(Color(255,0,0),5),10,10,200,500);
问题是为什么编译通过了,但是没有任何图像显示?理论上应该有一条线段才对……
谢谢longxin4参与,你回答的是如何在MFC中绘图,而不是MFC中使用GDI+绘图。

问题已解决。需参照:http://apps.hi.baidu.com/share/detail/20427479进行设置,具体如下:

1. VC2005“项目/*属性”菜单项,打开项目的属性页窗口,先选“所有配置”,再选“配置属性/链接器/输入”项,在右边上部的“附加依赖项”栏的右边,键入GdiPlus.lib 后按“应用”钮,最后按“确定”钮关闭对话框。
2. 在需要用到GDI+的文件头加上下面两句
#include
using namespace Gdiplus;
3. 在应用程序类应用程序类(CGDIPlusDemoApp) 头文件中声明一个成员变量:
ULONG_PTR m_gdiplusToken; // ULONG PTR 为int64 类型
并在该类的初始化函数CGDIPlusDemoApp::InitInstance() 中加入以下代码来对GDI+进行初始化:
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
注意:这两个语句必须加在应用程序类的InitInstance函数中的
CWinApp:: InitInstance ();
语句之前。
  1、可以悔简芦在内碧带存中建立一张缓存图片,然后在这个图片上画你需要的图,然后输出到窗体,这样你可以直接保存成图片了。
  咐唤2、画在bitmap上
  bitmap有save方法
  创建graphics的时候用:Graphics.FromImage().
HDC hdc;
hdc=::GetDC(m_hWnd);
MoveToEx(hdc,10,10,NULL);
LineTo(hdc,100,10);
LineTo(hdc,100,100);
LineTo(hdc,10,100);
LineTo(hdc,10,10);
← 上一篇: 下一篇: →