您的位置:首页 > 其它

关于在WinCE下使用SetWindowRgn的问题

2012-03-19 21:38 369 查看
关于在WinCE下使用SetWindowRgn的问题

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

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

虽然问题没有弄明白,但是希望对有同样问题的兄弟姐妹有所帮助,所以就先写下这么多了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  wince 测试 平台