第一:在GDI.rc导入PNG图片s
第二:在stdafx.h中加上下列GDI的头文件
#include "c:/GDIPlus/includes/gdiplus.h" 请修改为你的头文件路径
using namespace Gdiplus;
#pragma comment(lib, "c://GDIPlus//lib//gdiplus.lib") 请修改为你的.lib文件路径
第三:在GDIDlg.cpp 中的OnCreate假如下列
int CGDIDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
// 使用GdiplusStartup初始化GDI+
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
//初始化gdiplus界面色调的环境混合样式
// Initialize GDI+.
BLENDFUNCTION m_Blend;//初始化GDI的环境混合样式
m_Blend.BlendOp=0; //theonlyBlendOpdefinedinWindows2000
m_Blend.BlendFlags=0; //nothingelseisspecial...
m_Blend.AlphaFormat=1; //...
m_Blend.SourceConstantAlpha=255;//AC_SRC_ALPHA
/*在这一步中需要特别说明的是,在创建透明窗口式需要调用一个Windows API函数UpdateLayeredWindow(),
该函数在.net以上的版本的SDK中有申明,但是在VC6.0下要调用要么下载200多兆的高版本SDK,
要么从动态链接库“User32.dll”中调用,这里选择从“User32.dll”中调用。以上定义中后三项就是为此作准备的*/
HINSTANCE hFuncInst;
typedef BOOL (WINAPI *MYFUNC)(HWND,HDC,POINT*,SIZE*,HDC,POINT*,COLORREF,BLENDFUNCTION*,DWORD);
MYFUNC UpdateLayeredWindow;
hFuncInst = LoadLibrary(_T("User32.DLL"));
BOOL bRet=FALSE;
if(hFuncInst)
UpdateLayeredWindow=(MYFUNC)GetProcAddress(hFuncInst, "UpdateLayeredWindow");
else
{
MessageBox(_T("User32.dll ERROR!"));
exit(0);
}
//去除任务栏窗口对应按钮
ModifyStyleEx (WS_EX_APPWINDOW,WS_EX_TOOLWINDOW );
//本窗口句柄
m_hWnd=this->GetSafeHwnd();
//当前窗口的DC
HDC hdcScreen=::GetWindowDC (m_hWnd);