关于在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作参数,什么问题都没有了……这个……我都无语了……(参数没有变)。不知道为什么……
虽然问题没有弄明白,但是希望对有同样问题的兄弟姐妹有所帮助,所以就先写下这么多了
程序原来是在PC上写的。迁移到PPC上以后,发现了一个问题,就是 SetWindowRgn 函数的影响使得对话框无法显示,成了一片白色。按下模拟器上的方向键以后才可以显示。到网上查查,发现还真有和我一样的问题,但是没有解决的方法。后来单步跟踪,发现在WinCE平台下调用SetWindowRgn 函数的时候窗体属性是不可见(可能是我调用时机的问题),所以产生这样的结果(理论上应该不会的,CRgn的值都是正确的,和窗体可见不可见应该是没有关系的)。但经过检查窗体创建时的属性确实是设置为可见的。也许在WinCE中窗体创建时的方法或者刷新方式与PC下有所不同吧。于是在使用SetWindowRgn
的函数上加上IsWindowVisible()的限制条件,再进行编译。测试通过……
但是还有一个问题。在运行SetWindowRgn 函数后收不到鼠标消息了。后来用其他方法解决,但觉得方法很不好。于是继续寻找。后来在做对比试验时意外发现,SetWindowRgn 函数使用的HRGN直接用参数创建,不要使用(HRGN)CRgn的方式转换,就没有问题……于是将程序中的CRgn换成HRGN,CombineRgn函数使用HRGN作参数,什么问题都没有了……这个……我都无语了……(参数没有变)。不知道为什么……
虽然问题没有弄明白,但是希望对有同样问题的兄弟姐妹有所帮助,所以就先写下这么多了
相关文章推荐
- 【原创】回复:关于wince使用16C554/16C552 等外扩串口芯片的问题
- 【原创】回答网友关于ARM9 S3C2440 wince6.0 内存 128M的使用问题
- 关于wince 使用占用空间大的内存变量问题(编译无错误但是无法运行的问题)
- 回复:关于wince使用16C554/16C552 等外扩串口芯片的问题
- 关于Ubuntu12.04下gedit不能使用中文输入法的问题
- 关于easyui中的combogrid keyHanlder属性使用的问题(filter改进)
- [导入]关于在ashx页面中使用Session的问题
- 关于CCM-licence的使用问题
- 关于oracle版权使用问题
- 关于vs2015的使用问题
- 关于Qt creator 无法使用fcitx输入中文的问题折腾
- 关于pulltorefresh结合swipelistview和viewflow的使用问题
- 关于解决Python使用pip安装pyjnius时的问题(windows平台)
- 关于使用navicat for mysql在建立数据库连接时出现的2003 can't connect to mysql server on'localhost'(10038)问题
- 关于使用spring框架来实现email发送其中遇到的问题已解决
- 关于在myeclipse中添加maven的配置问题 以及使用
- 关于使用BE备份数据库的问题收集
- 关于在stuts2使用json(commons-lang.jar夹包问题)
- 关于wince触摸屏驱动校正不成功的问题
- 关于使用“远程桌面连接”中碰到的一点问题!