游戏开发论坛

 找回密码
 立即注册
搜索
楼主: nowpaper

Win32API实现不规则窗口

[复制链接]

24

主题

229

帖子

229

积分

中级会员

Rank: 3Rank: 3

积分
229
发表于 2005-8-23 21:32:00 | 显示全部楼层

Re:Win32API实现不规则窗口

好文,支持下!

0

主题

46

帖子

46

积分

注册会员

Rank: 2

积分
46
发表于 2005-8-27 01:27:00 | 显示全部楼层

Re:Win32API实现不规则窗口

伪春菜?

13

主题

101

帖子

101

积分

注册会员

Rank: 2

积分
101
发表于 2005-8-27 15:10:00 | 显示全部楼层

Re:Win32API实现不规则窗口

恩,好文章,楼主辛苦了!

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-9-5 20:32:00 | 显示全部楼层

Re:Win32API实现不规则窗口

楼主费心了,支持你。

0

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2005-10-12 15:31:00 | 显示全部楼层

Re:Win32API实现不规则窗口

一直想学的
谢谢

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2005-10-12 19:09:00 | 显示全部楼层

Re:Win32API实现不规则窗口

如果是用WIN2K或者XP的话,直接用WINDOWS的函数就能设置窗口的alpha color key透明,用不着这么麻烦了。特别是要在桌面上画3D人物的话,用setwindowrgn的方法不可取,从backbuffer里取出颜色信息太费时间了。

0

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2005-10-14 03:08:00 | 显示全部楼层

Re:Win32API实现不规则窗口

网看的,改进一点点的取着色算法:
        fullRgn = CreateRectRgn(0,0,0,0);
        for(int y=0; y<n_bmh; y++)
        {
                int x = 0;
                while(x<=n_bmw)
                {
                        while(x<=n_bmw&&GetPixel(hdc,x,y) == color)
                       
                                x++;
                        int leftx = x;
                        while (x<=n_bmw && GetPixel(hdc,x,y) !=color)
                                x++;
                        lineRgn = CreateRectRgn(leftx,y,x,y+1);

                        CombineRgn(fullRgn,fullRgn,lineRgn,RGN_OR);
                        DeleteObject(lineRgn);
                }
        }       
顺便说一下,我用楼主的算法做,CPU时间为20S,而用个算法做,只用1S

71

主题

1804

帖子

1880

积分

金牌会员

Rank: 6Rank: 6

积分
1880
QQ
发表于 2005-10-14 13:16:00 | 显示全部楼层

Re:Win32API实现不规则窗口

大侠!!!真牛!程序也玩成这样!

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2005-10-15 15:44:00 | 显示全部楼层

Re:Win32API实现不规则窗口

本人正在看实现不规则窗口的汇编程序代码,正愁部分代码不是很明白.,凑巧遇上这贴,太好了!
我看的是罗云彬的小闹钟程序代码,里面的解释太少了,对于关键实现过程没有解释,看得偶好费力(第一次正规学编程),*&*^&^%$!有兴趣的同志可以去看看小闹钟程序代码.
http://211.90.225.98:22366

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2005-10-15 23:21:00 | 显示全部楼层

Re:Win32API实现不规则窗口

我想问一下楼主,"判断蒙板图像的每一个点,如果这个点是需要镂空的颜色,那么就将它创建成为一个RNG",如何把一个象素点创建成多边形?
程序先判断一个坐标里的象素点需要镂空的颜色,不是的话就CreateRectRgn (该点坐标X,该点坐标Y,该点坐标X + 1,该点坐标Y + 1),问题是这样创建的多边形可能包括要镂空颜色的点,而下面的代码显然不能消除已产生的需要镂空颜的点.
有哪位兄台愿帮我解疑??
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 02:21

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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