用PNG透明图片和GDI+做不规则透明窗体"异形窗口"

本文介绍了如何使用GDI+和PNG图片创建具有不规则透明效果的窗体。首先在Photoshop中制作带透明通道的PNG图片,然后在VC6.0或VS2003环境下进行设置,引入GDI+库。接着,通过GdiplusStartup初始化GDI+环境,定义并加载PNG图片资源,利用UpdateLayeredWindow函数实现窗口透明。最后在OnCreate和OnPaint事件中处理图片加载和透明效果,从而实现异形窗口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、准备工作(PNG图片透空窗体)

1、图片资源准备工作。首先在Photoshop中编辑所用图片,将这些图片保存成为带透明通道的.png格式(GDI+调用显示时能够透明调背景)。这样程序中图片资源就准备好了。

2、下面开始做好展开此项工作的基本准备工作。
创建一个对话框应用程序,名称为Gdi+PNG
在VC6.0下的设置:
(1)、下载gdiplus forVC6.0的SDK,(总共两兆多)
(2)、在C盘建立文件夹“GDI+”将开发包拷贝在里面,亦即建立如下路径,以便例子代码顺利编译(当然你可以放到任意你喜欢的地方,只要在你的Project中正确包含路径即可!)。
(也可以将gdiplus.h放在你的VC6.0的include路径,gdiplus.lib放在你的lib路径,将gdiplus.dll放到你的system32目路下,windows2000以前的版本需要gdiplus.dll文件)

C:\GDI+\Includes
C:\GDI+\Lib
C:\GDI+\gdiplus.dll

(3)在stdAfx.h中添加对GDI+环境的设置 #define UNICODE
#ifndef ULONG_PTR // 在VC2003上可无
#define ULONG_PTR unsigned long* // 在VC2003上可无(实为无附号4字节)
#endif // 在VC2003上可无
#include <comdef.h> //初始化COM口
#include "c:\gdi+\includes\gdiplus.h" // 请修改为你的头文件路径
using namespace Gdiplus; // 名称空间
#pragma comment(lib, "c:\\gdi+\\lib\\gdiplus.lib") // 请修改为你的.lib文件路径

在VC2003中如下设置:
(1)VS2003.net中打开“项目”---“属性”---“链接器”---“输入”---“附加依赖项”,输入“gdiplus.lib”。
(2)在“stdafx.h”文件中输入
#include <comdef.h> //初始化COM口
#include <gdiplus.h> // GDI+头文件
using namespace Gdiplus; // 命名空间
(3)VS2003中已经带有GDI+库了。

在应用程序的主头文件(Gdi+PNG.h)里面,在应用程序项目的应用类中,添加一个成员变量,如下列代码:
ULONG_PTR m_pGdiToken; // 其中,ULONG_PTR是一个DWORD数据类型,
// 该成员变量用来保存GDI+被初始化后在应用程序中的GDI+标识,
// 以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+
在应用程序的类行为(Gdi+PNG.cpp)InitInstance()初始化函数里加入如下代码:
CWinApp::InitInstance(); // 这个函数后面
GdiplusStartupInput m_gdi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值