区域HRGN用过后会失效吗?
HRGN hh=CreateRectRgn(10,10,100,100);
SetWindowRgn(Panel1->Handle,hh,true);
SetWindowRgn(Panel2->Handle,hh,true);
结果Panel1正确,Panel2没有任何变化,但如果
HRGN hh=CreateRectRgn(10,10,100,100);
SetWindowRgn(Panel1->Handle,hh,true);
hh=CreateRectRgn(10,10,100,100);
SetWindowRgn(Panel2->Handle,hh,true);
就两个都正确,这是为什么?
问题点数:20、回复次数:5Top
1 楼Javpp(0)(1)(2)(3)(4)(5)(6)(7)(8)(9)回复于 2005-01-02 10:43:45 得分 20
从运行结果来看,
HRGN hh=CreateRectRgn(10,10,100,100);
SetWindowRgn(Panel1->Handle,hh,true);
SetWindowRgn(Panel2->Handle,hh,true);
中,第一个SetWindowRgn返回1,第二个SetWindowRgn返回0,
在
HRGN hh=CreateRectRgn(10,10,100,100);
SetWindowRgn(Panel1->Handle,hh,true);
hh=CreateRectRgn(10,10,100,100);
SetWindowRgn(Panel2->Handle,hh,true);
中,两次都返回1,
所以,在调用一次SetWindowRgn后,hh句柄就失效了Top
2 楼kezhu(死猪)回复于 2005-01-02 20:59:52 得分 0
看来在每次使用SetWindowRgn前,需要把hh备份一下。比如
HRGN hh=CreateRectRgn(10,10,100,100);
HRGN h=CreateRectRgn(0,0,0,0);
CombineRgn(h,hh,hh,RGN_COPY);
SetWindowRgn(Panel1->Handle,h,true);
CombineRgn(h,hh,hh,RGN_COPY);
SetWindowRgn(Panel2->Handle,h,true);
hh永远不做SetWindowRgn来用,这样不是很麻烦吗?Top
3 楼mscf(扎西特勒)回复于 2005-01-02 21:18:50 得分 0
学习Top
4 楼Javpp(0)(1)(2)(3)(4)(5)(6)(7)(8)(9)回复于 2005-01-02 22:29:44 得分 0
应该是的
只要用过一次后,就没有了,只能这样了Top
5 楼xiaolong83(风一样的男子)回复于 2005-01-03 13:19:18 得分 0
let's studyTop




