社区
界面
帖子详情
求高手,用png图片做异形窗口
breezes2008
2010-01-12 10:42:07
我知道有个Cimage类可操作PNG,但网上说的方法不明白
给出关键代码和说明
先谢谢大家了
...全文
222
10
打赏
收藏
求高手,用png图片做异形窗口
我知道有个Cimage类可操作PNG,但网上说的方法不明白 给出关键代码和说明 先谢谢大家了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
av007007
2010-01-12
打赏
举报
回复
up
jameshooo
2010-01-12
打赏
举报
回复
1、设置窗口的扩展风格,添加 WS_EX_LAYERED
2、用 CImage 加载 PNG 图片
3、把PNG图片AlphaBlend到一个内存DC
4、调用 UpdateLayeredWindow 把这个内存DC交给桌面管理就行了
lllyyy2403
2010-01-12
打赏
举报
回复
不知道LZ说的PNG是什么图片。要是以BMP图片的形状显示窗体却也不难。直接用CBITMAP装入图片,然后檫除背景即可。
sjdev
2010-01-12
打赏
举报
回复
什么地方不明白?
zoulie
2010-01-12
打赏
举报
回复
http://www.qqread.com/vc/k720947020.html
然后在OnEraseBkgnd里面再绘制
hurryboylqs
2010-01-12
打赏
举报
回复
CImage将图片Load进来后 扫描下需要异型的区域,然后CombinRgn
SetWindowRgn
chenyu2202863
2010-01-12
打赏
举报
回复
去看吧,别忘了给我分
http://www.codeproject.com/KB/GDI-plus/Style_Toolkit.aspx
http://www.codeproject.com/KB/dialog/PerfectTranlucentDlg.aspx(国人写的)
菜鸟二号
2010-01-12
打赏
举报
回复
[Quote=引用 5 楼 breezes2008 的回复:]
引用 3 楼 jameshooo 的回复:
1、设置窗口的扩展风格,添加 WS_EX_LAYERED
2、用 CImage 加载 PNG 图片
3、把PNG图片AlphaBlend到一个内存DC
第3步不懂,怎么做
[/Quote]
Graphics graphics(hdc);
Image image(L"D:\\appletree.png");
graphics.DrawImage(&image,0,0,image.GetWidth(),image.GetHeight());
4、调用 UpdateLayeredWindow 把这个内存DC交给桌面管理就行了这个函数一般没定义,而且使用后,用户就不能操作了,建议使用
#define WS_EX_LAYERED 0x00080000
#define LWA_COLORKEY 0x00000001
#define LWA_ALPHA 0x00000002
#define ULW_COLORKEY 0x00000001
typedef BOOL (FAR WINAPI *LAYERFUNC)(HWND,COLORREF,BYTE,DWORD);
BOOL SetLayeredWindowAttributes(HWND hwnd,COLORREF crKey,BYTE bAlpha,DWORD dwFlags)
{
LAYERFUNC SetLayer;
HMODULE hmod = LoadLibrary("user32.dll");
SetLayer=(LAYERFUNC)GetProcAddress(hmod,"SetLayeredWindowAttributes");
BOOL bReturn = SetLayer(hwnd,crKey,bAlpha,dwFlags);
FreeLibrary(hmod);
return bReturn;
}
以上为定义部分,
显示窗口(showwindow)后使用SetLayeredWindowAttributes,即可,用法自己搜吧
breezes2008
2010-01-12
打赏
举报
回复
[Quote=引用 3 楼 jameshooo 的回复:]
1、设置窗口的扩展风格,添加 WS_EX_LAYERED
2、用 CImage 加载 PNG 图片
3、把PNG图片AlphaBlend到一个内存DC
4、调用 UpdateLayeredWindow 把这个内存DC交给桌面管理就行了
[/Quote]
第3步不懂,怎么做
VC利用
PNG
图片
制作
异形
窗口
的源代码.visual c++自绘窗体
VC利用
PNG
图片
制作
异形
窗口
的源代码.visual c++自绘
窗口
MFC GDI+ 用
png
图片
做
的
异形
窗口
,渐显渐隐启动退出
MFC GDI+ 用
png
图片
做
的
异形
窗口
,渐显渐隐启动退出,可以用来
做
启动画面。
png
背景
异形
窗体
主要以
png
图片
作为背景,采用GDK+呈现不规则
窗口
。
GDI+用
PNG
图片
做
半透明异型
窗口
Delphi
GDI+用
PNG
图片
做
半透明异型
窗口
Delphi源码 非常不错的源码哦。GDI+用
PNG
图片
做
半透明异型
窗口
Delphi源码 非常不错的源码哦。
GDI+
做
不规则窗体(上面贴.
png
图片
)
用
PNG
透明
图片
和GDI+
做
不规则透明窗体"
异形
窗口
" 用
PNG
透明
图片
和GDI+
做
不规则透明窗体
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章