原标题: A user draw button that supports PNG files with transparency, for Visual C++ 6.0 and VS2005 http://www.codePRoject.com/Articles/26887/A-user-draw-button-that-supports-PNG-files-with-tr
简要步骤:
1.添加GDI+支持 (1) stdafx.h中添加
#include <gdiplus.h>using namespace GdiPlus;(2)在所在类中添加成员
ULONG_PTR m_gdiplusToken;(3)在InitInstance函数中添加
// Initialize GDI+Gdiplus::GdiplusStartupInput gdiplusStartupInput;Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);(4)在ExitInstance函数中添加
Gdiplus::GdiplusShutdown(m_gdiplusToken);2.添加对应的4个文件 (上方链接中下载,可能需要梯子) GdipButton.h GdipButton.cpp MemDC.h CGdiPlusBitmap.h 如果在VS2010下,因为CMemDC的关系,请对源码进行相应的修改。在CMmeDC.h增加命名空间,
namespace ns_gdiBtn { class CMemDC : public CDC { .............................. }; };3.修改代码用到CMemDC的地方改为ns_gdiBtn::CMemDC.
4.添加对应的PNG资源,然后按钮做对应修改,CButton m_btnLogin 改为CGdipButton m_btnLogin;增加下面代码 m_btnLogin.LoadStdImage(IDB_LOGINBTN, _T("PNG")); //正常状态 m_btnLogin.LoadAltImage(IDB_LOGINACTIVE, _T("PNG")); //按下时 m_btnLogin.EnableToggle(TRUE);
新闻热点
疑难解答