游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3990|回复: 11

发一个我封装的dll, 调用该函数可轻松实现动画窗体

[复制链接]

1

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2006-1-10 16:53:00 | 显示全部楼层 |阅读模式
调用该函数可轻松实现动画窗体,crKey 为关键色,指定关键色窗体上的该颜色将被剪裁掉 bAlpha 为窗体透明度.声明如下
SetLayeredWindowA(HWND hWnd,int XDest,int Ydest, int nWidth,int nHeight,
HDC hpic, int xSrc,int ySrc,int nSrcWidth,int nSrcHeight,COLORREF crKey,BYTE bAlpha)

sf_2006110165247.rar

38.96 KB, 下载次数:

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2006-1-10 17:15:00 | 显示全部楼层

Re:发一个我封装的dll, 调用该函数可轻松实现动画窗体

要用外部DLL文件?

能不能发个用此函数设计的例子。

1

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2006-1-10 17:57:00 | 显示全部楼层

Re: 发一个我封装的dll, 调用该函数可轻松实现动画窗体

注意: ( dll路径和图片路径改为自己的 )

VB声明如下:
Private Declare Function SetLayeredWindowA Lib "I:\我的C++练习\check窗体dll\SetForm.dll" (ByVal hWnd As Long, ByVal XDest As Long, ByVal Ydest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hpic As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crKey As Long, ByVal bAlpha As Long) As Long
使用
Private Sub Form_Load()
Me.Picture = LoadPicture("I:\火\002640.bmp")
SetLayeredWindowA Me.hWnd, 0, 0, 200, 200, Me.hDC, 0, 0, 200, 200, RGB(0, 0, 0), 100
End Sub

再什么问题可以问

1

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2006-1-10 18:07:00 | 显示全部楼层

Re: 发一个我封装的dll, 调用该函数可轻松实现动画窗体


别忘了记得加上句

  Me.BackColor = RGB(0, 0, 0)  '设窗体背景色为关键色,则可去掉

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2006-1-10 18:23:00 | 显示全部楼层

Re:发一个我封装的dll, 调用该函数可轻松实现动画窗体

不错, 收下了,马上用到有游戏里。

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2006-1-10 18:41:00 | 显示全部楼层

Re:发一个我封装的dll, 调用该函数可轻松实现动画窗体

汗一个,这个是分层窗口,楼主提供源码吧。

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2006-1-10 18:46:00 | 显示全部楼层

Re:发一个我封装的dll, 调用该函数可轻松实现动画窗体

刚看了一下,好象是有点问题,还以为是象TV3D的那些函数。

SetLayeredWindowA Me.hWnd, 0, 0, 100, 100, Me.hDC, 0, 0, 100, 100, RGB(0, 0, 0), 1000   ‘(试了一下1000是不透明)

0,0,100,100
并不能改变图片尺寸大小和透明角色图像边缘,只是透明FOEM1的背景没有意义,

130

主题

2714

帖子

2714

积分

金牌会员

Rank: 6Rank: 6

积分
2714
发表于 2006-1-10 18:56:00 | 显示全部楼层

Re:发一个我封装的dll, 调用该函数可轻松实现动画窗体

做那种瑞星小狮子,还有江民青蛙类屏幕保护程序就有点用。

1

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2006-1-10 23:27:00 | 显示全部楼层

Re: 发一个我封装的dll, 调用该函数可轻松实现动画窗体

源矩形会根据需要进行伸缩,以便与目标矩形的大小相符

透明度在0-----255之间.  127是半透明

1

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2006-1-11 10:10:00 | 显示全部楼层

Re: 发一个我封装的dll, 调用该函数可轻松实现动画窗体

晕死! 你把窗体的背景色设为和你图片中想透明的颜色一致.
把RGB(0,0,0,)改为你想透明的颜色,即再把RGB(0,0,0,)改为窗体的颜色则所有多余颜色都被去掉,只剩下动画角色.

SetLayeredWindowA Me.hWnd, 0, 0, 200, 200, Me.hDC, 0, 0, 200, 200, RGB(0, 0, 0), 100

中的RGB是RGB(0,0,0,)---RGB(255,255,255)之间.例RGB(0,0,0,)是纯黑.
RGB(0,0,0,)是你想透明的颜色,,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 05:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表