关于在WinCE下使用SetWindowRgn的问题


关于在WinCE下使用SetWindowRgn的问题


程序原来是在PC上写的。迁移到PPC上以后,发现了一个问题,就是 SetWindowRgn 函数的影响使得对话框无法显示,成了一片白色。按下模拟器上的方向键以后才可以显示。到网上查查,发现还真有和我一样的问题,但是没有解决的方法。后来单步跟踪,发现在WinCE平台下调用SetWindowRgn 函数的时候窗体属性是不可见(可能是我调用时机的问题),所以产生这样的结果(理论上应该不会的,CRgn的值都是正确的,和窗体可见不可见应该是没有关系的)。但经过检查窗体创建时的属性确实是设置为可见的。也许在WinCE中窗体创建时的方法或者刷新方式与PC下有所不同吧。于是在使用SetWindowRgn 的函数上加上IsWindowVisible()的限制条件,再进行编译。测试通过……

但是还有一个问题。在运行SetWindowRgn 函数后收不到鼠标消息了。后来用其他方法解决,但觉得方法很不好。于是继续寻找。后来在做对比试验时意外发现,SetWindowRgn 函数使用的HRGN直接用参数创建,不要使用(HRGN)CRgn的方式转换,就没有问题……于是将程序中的CRgn换成HRGN,CombineRgn函数使用HRGN作参数,什么问题都没有了……这个……我都无语了……(参数没有变)。不知道为什么……

虽然问题没有弄明白,但是希望对有同样问题的兄弟姐妹有所帮助,所以就先写下这么多了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值