现在的位置: 首页 > 综合 > 正文

wxPropertyGrid bug

2013年08月28日 ⁄ 综合 ⁄ 共 818字 ⁄ 字号 评论关闭

vs2008在win7底下安装完了就不能激活了...今天到期了...纠结...这会室友在玩游戏,又不能下片,就瞎喷点。最近写了一些wxWidgets的控件,未将来做编辑器准备。发现了一些wxPropertyGrid的bug,bug不少,不过都是小东西,记不得了,我把几个比较讨厌的会让程序崩溃的bug回忆一下。

wxPropertyGridManager bug相当不少,我已经不用了,就不说了。

first,配合aui使用时,如果是dock模式,拖一会程序会崩溃,原因是当property不合法时,wxPropertyGrid会阻止程序关闭,因为这个原因,他cache有toplevelparent,既GetTLPxxxxx,当用aui的dock时,toplevelparent会不断变化,有时候就冲突了,就GG了,我觉得这个功能没啥用,可以直接这部分代码屏蔽了。当然还有更好的解决办法。用2.8.9版本,2.8.10和2.8.8都会挂,具体为啥我没查,我直接把dock disable了。

second,wxPropertyGrid的消息处理,具体咋引起崩溃的我记不得了,后来查到的原因,在wxPropertyGrid派发消息时,它判断是不是window,但是是这样写的wxWindow* wnd = (wxWindow*)event.GetEventObject();wnd->IsKindOf(ClassInfo(wxWindow)),转成obj就行了。

thrid, wxProperty的验证,既wxValidator,在OnDoValidatFailure的时候,没有SetFocus,所以当按Esc后,如果当前窗口不是被编辑的条目,就崩溃了。

forth, 好像叫wxFailureInfo吧,就是个指明属性不合法时的状态那个struct,没有构造函数,有俩个基本类型变量没有初始化,所以在release版本的运行时的表现和其他三个版本不一样。

抱歉!评论已关闭.