本人笔记,防忘!
解决问题:添加PNG格式的图片
起初分别下载了CGdipButton扩展类以及CButtonST类,均可进行图片的加载。工程应用中,二者均有用到,本来打算合并下二者功能,结果。。。。。。。。
利用CGdipButton时需要加载GDI,下载后将include以及lib放在VC的对应目录下。
代码中的相关配置:
在StdAfx.h中加入:
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
using namespace Gdiplus;
在C工程名App.h中加入声明:
ULONG_PTR m_gdiplusToken;
在C工程名App.cpp的InitInstance()函数中加入:
Gdiplus::GdiplusStartupInput gdiplusStartupInput; //初始化操作哇
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
在C工程名App.cpp的ExitInstance()函数中加入:
Gdiplus::GdiplusShutdown(m_gdiplusToken); //关闭
这样在后续的程序代码中就可利用GDI了。
在对话框上添加图片的例子(在OnPaint中添加):
CClientDC *pDC = new CClientDC(GetDlgItem(IDC_STC_LOG1));//图片控件的ID
CRect rect,rect1;
GetDlgItem(IDC_STC_LOG1)->GetWindowRect(&rect);
Graphics graphics7(pDC->m_hDC); // Create a GDI+ graphics object
DWORD dBufSize7=MultiByteToWideChar(CP_ACP, 0, logPath[0].GetBuffer(0), -1, NULL, 0);
wchar_t * dBuf7=new wchar_t[dBufSize7];
wmemset(dBuf7, 0, dBufSize7);
//进行转换
nRet=MultiByteToWideChar(CP_ACP, 0, logPath[0].GetBuffer(0), -1, dBuf7, dBufSize7);
Image image7(dBuf7);
graphics7.DrawImage(&image7,0, 0, image7.GetWidth(), image7.GetHeight());
另:动图的加载,网上下载了CPictureEx扩展类,完成该操作。
if (m_colGgl.Load(MAKEINTRESOURCE(IDR_GIF_GGL),_T("gif")))//m_colGgl为CPictureEx控制类
{
m_colGgl.Draw();
}