在MFC 使用GDI+ 调用一张PNG 图片使之成为 背景图片

发布网友 发布时间:2022-04-22 06:07

我来回答

2个回答

热心网友 时间:2023-11-04 09:18

在工程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();

    }

热心网友 时间:2023-11-04 09:19

随窗体自动缩放

函数原型:
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百度之

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com