MFC中如何使用GDI+绘制出图形?
1.新建了一个MFC的SDI项目,其中View类继承了CFormView类。2.在View的cpp文件中,使用了下面语句用来调用GDI+库#include<GdiPlus...
1.新建了一个MFC的SDI项目,其中View类继承了CFormView类。
2.在View的cpp文件中,使用了下面语句用来调用GDI+库
#include <GdiPlus.h>
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 <gdiplus.h>
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 ();
语句之前。 展开
2.在View的cpp文件中,使用了下面语句用来调用GDI+库
#include <GdiPlus.h>
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 <gdiplus.h>
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 ();
语句之前。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询