在MFC 使用GDI+ 调用一张PNG 图片使之成为 背景图片
在工程stdafx.h中添加如下代码,关联GDI+:
#include "GdiPlus.h"
using namespace Gdiplus;
#pragma comment(lib,"gdiplus.lib")在程序初始化部分,对话框工程是在test.cpp中加入下面代码,装载GDI+:
BOOL CtestApp::InitInstance() //在这个函数中加入
{ 。。。。
AfxEnableControlContainer();
//装载GDI+
GdiplusStartupInput m_gdiplusStartupInput;
ULONG_PTR m_pGdiToken;
GdiplusStartup(&m_pGdiToken,&m_gdiplusStartupInput,NULL);
。。。。。
//卸载GDI+
GdiplusShutdown(m_pGdiToken);
return FALSE; //这一句是自动生成的代码
}
3.在OnPaint()函数的else中添加如下代码:
else
{
CDC *pDC;
pDC =GetDC();
CRect rect;
GetClientRect(&rect); //获取客户区大小
Graphics graphics( pDC->m_hDC);
Image image(_T("res\\bkg.png"), FALSE);
graphics.DrawImage(&image, 0, 0, rect.right, rect.bottom); //绘制背景
CDialogEx::OnPaint();
}
2024-07-20 广告
2011-09-28
函数原型:
int WINAPI icePub_dispImgBySizeForm(HWND hWnd,char *strImgFilename,int x,int y)
输入:hWnd 窗体或控件句柄
strImgFilename 待显示的图片文件名
x x坐标
y y坐标
输出:
typedef int (WINAPI ICEPUB_DISPIMGBYSIZEFORM)(HWND hWnd,char *strImgFilename,int x,int y);
ICEPUB_DISPIMGBYSIZEFORM *icePub_dispImgBySizeForm = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_dispImgBySizeForm = (ICEPUB_DISPIMGBYSIZEFORM *)GetProcAddress(hDLLDrv, "icePub_dispImgBySizeForm");
}
if(icePub_dispImgBySizeForm != NULL)
icePub_dispImgBySizeForm(m_hWnd,"b.png",0,10);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
参考资料: icePubDll.dll百度之