在 mfc中会经常遇到处理图像 图片 控件添加透明背景图片等,这时候就会用到GDI 或者GDI+ 。由于 客户要求,本人也是被迫头一次用mfc项目,以前都是用vc++做些小的工具及activex ,碰到很多头疼的问题。在这做一个整理,梳理下知识,要是能帮到别人那自然更好。
一、、在vs中 使用gdi+ 简单的对话框程序为例
1、创建一简单对话框
2、在StdAfx.h头文件添加gdi+头文件及库文件 代码如下
#include <comdef.h>//初始化一下com口
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#include "GdiPlus.h"
using namespace Gdiplus;
#endif
#pragma comment(lib,"gdiplus.lib")
3、程序启动 初始化 gdi+ 对话框就是在InitInstance函数中添加如下代码
//gdi+用到的两个变量 装载gdi+
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
4、在 程序结束 或者不需要使用的时候记得释放
GdiplusShutdown(m_pGdiToken);
5、这样就可以再你想要使用的地方正常使用了 (加载png图片)
void CTestDlg::OnButton1()
{
pDC =GetDC();
Graphics graphics( pDC->m_hDC);
Image image(L"walkman.png", FALSE);
graphics.DrawImage(&image, 10,10);
}