先来看一下实现的效果,下图中那个娃娃就是我们要实现的不规则窗体啦~
1. GDI+配置及初始化(VS2013)
VS2013上已经有了GDI+支持,不用单独下载安装包了。现在只需项目中引入gdiplus.lib和加入头文件即可。
为了在全工程使用GDI+,在stdafx.h中加入:
#include <GdiPlus.h>
#pragma comment(lib, "GdiPlus.lib")
using namespace Gdiplus;
使用GDI+还需要进行初始化:
//在应用初始化时,启动GDI+
BOOL CXXXApp::InitInstance()
{
...
//Initialize GDIplus
ULONG_PTR m_gdiplusToken;
Gdiplus::GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);
...
}
//在程序退出时,关闭gdi+
int CXXXApp::ExitInstance()
{
//close gdiplus environment
GdiplusShutdown(m_gdiplusToken);
return CWinApp::ExitInstance();
}
2. 动态载入png图片
png图片是实现不规则窗体的关键,因为它本身就是带透明效果的&