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 ();
语句之前。
展开
 我来答
糖糖寳寳
2015-09-11 · TA获得超过6.4万个赞
知道大有可为答主
回答量:1.8万
采纳率:92%
帮助的人:3923万
展开全部
  1、可以在内存中建立一张缓存图片,然后在这个图片上画你需要的图,然后输出到窗体,这样你可以直接保存成图片了。
  2、画在bitmap上
  bitmap有save方法
  创建graphics的时候用:Graphics.FromImage().
longxin4
2011-04-04
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
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);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式