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 ();
语句之前。
MFC中如何使用GDI+绘制出图形?
1、可以在内存中建立一张缓存图片,然后在这个图片上画你需要的图,然后输出到窗体,这样你可以直接保存成图片了。2、画在bitmap上 bitmap有save方法 创建graphics的时候用:Graphics.FromImage().
如何MFC 中用GDI+中的DrawLine方法画一条直线?
1.你的GDI+初始化工作做了没?2.这样写简练.CDC* pDC = GetDC();Graphics g(pDC->m_hDC);g.DrawLine(&Pen(Color(255,0,0),3),10,10,200,100);ReleaseDC(pDC);3.OnDraw不是应该就带了个从OnPaint里的参数pDC,干嘛还要自己获取。
MFC框架下GDI+绘图问题
但是,我不建议你依赖GDI的函数来直接求算交点和区域。通常的做法是:你自己依据数据和几何公式去计算交点,进而得到区域,然后用GDI来绘图。你应当把GDI的作用仅仅局限于在你的图形表现出来,不要对它有其他的期望。你可以参考一下计算机图形学和GIS(地理信息系统)方面的一些资料或代码。
C++向窗口绘制矩形
(1)准备使用GDI+ 的API include <windows.h> include <gdiplus.h> using namespace Gdiplus;VOID Example_DrawRectangle(HDC hdc){ \/\/ 参数hdc为绘图设备上下文句柄,你可以用GetDC()之类的函数获取 Graphics graphics(hdc); \/\/ 构造一个graphics对象,然后绘图就引用此对象方法即可绘图,真是厉害 ...
怎么用MFC编一个绘制多边形的程序啊
绘制连接lpPoints指定点的一组线段(无填充)pDC->PolyLine(LPPOINT lpPoints ,int nCount);lpPoints 用于连接的POINT结构或CPoint对象的指针。nCount 数组中的点的数目。其值不小于2。使用当前画笔绘制由直线连接的包含两个以上顶点的多边形。(有填充)pDC-> Polygon(LPPOINT lpPoints ,int nCount);...
mfc c++ 如何在button上 使图片大小按照按钮大小显示
OnPaint里面获得客户区的尺寸,然后将图片绘制在这个矩形范围上,灵活的使用DC即可,不过确实可能存在图片失真的问题
如何在MFC中使用GDI+技术
lib文件在IDE中选择“项目|添加现有项目”,把GDIplus.lib文件添加进来,该文件一般在C:\/Program Files\/Microsoft Visual Studio .NET 2003\/Vc7\/PlatformSDK\/Lib目录下4好了,现在可以在MFC中使用GDI+了void CMFCAndGDIView::OnDraw(CDC* \/*pDC*\/){CMFCAndGDIDoc* pDoc = GetDocument()...
mfc中combo控件如何实现自绘
掌握程度。有兴趣的朋友可以研究一下CXPButton类中DrawItem函数的数据结构,其实只要修改一下其中GDI绘图函数的部分代码,马上又能做 出另一个自绘按钮控件了。三、按钮类的使用 下面演示CXPButton类的使用。往对话框中添加一个按钮控件,假设它的ID值为IDC_BUTTON1。进入类向导(Class Wizard)的Member Var...
如何用C++6.0中的MFC 画图?最简单的线就可以
pDC);在MFC中的对话框应用程序中,你指定的消息中,加入上面的代码,可以绘制一条点100,100到200,200的直线 如果是在WM_PAINT消息中,则使用 CPaintDC dc(this);pDC.MoveTo(100,100);\/\/ 线的起点pDC.LineTo(200,200);\/\/ 线的终点想要在MFC中绘图,就要去学习GDI或者是GDIPlus都行 ...
mfc中怎样用GDI+合成图片
如果图片是png图片,用GDI+合成很容易,但是如果是其他格式图片,只能自己对图像数据进行合成计算。