WINAPI 区域的建立与删除实际操作注意情况

HRGN a,b,c;
b=CreateRectRgnIndirect(&(RECT) rect);
c=CreateRectRgnIndirect(&(RECT) rect);
这里b、c是我要创建的两个区域,然后我想合并他们:
我的错误用法:
iRgnType=CombineRgn(a,b,c,RGN_OR);
看上去没什么错误,起码我当初这么认为...后来比对区域的时候老是出错,检查又检查发现时这个里出错了,这个函数返回0,error,为什么错误呢,我躺在床上猛然想一起书上的一句话:这三个区域句柄都必须有效..又联想到树上的例子,顿时恍然大悟。我这里的a,是无效的,它只是声明了一次,所以,知道错哪里就好解决了。
只要加个 a=CreaterectRgnIndirect(1,1,0,0);给它创建个区域很小的一个,那么这个区域句柄就有效了!

还有个大亏是我没仔细看书的后果。。。发现好多血的教训都是因为我看书不仔细。。。哎,快就没质量- -!

没有图.

这个耗费我近两个小时,因为这个错误是(程序运行)十几次之后才发生。。。当时我去比对链表的数据是不是哪里出错了。。。。
最后又去看看是不是有什么句柄没删除,都没解决。。。。最后实在无奈了,看见我的一个数组:HGRN next[4];这个区域数组.然后它的删除操作是DeleteObject(next);
一开始我并认为错了.因为我记忆中书上是这么做的,然后我尝试分开Delete  Delete[0].....Delete[3],错误解决了!!!!
然后我翻翻书去看.看走眼了书上的hGrnClip 和hGrnTemp  我给看混了,书上实例删除时用for来吧数组的区域句柄都删除。。。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值