1、wtl窗口的OnPaint消息必须传下去,即:bHandled = FALSE,不然定时器什么的都失效了...GIS loading到110个的时候也卡死了
2、wtl里的响应了OnEraseBkgnd(bHandled=TRUE)后OnCtlColorDlg不再起作用,应该是ctl_color返回的画刷给系统默认的OnEraseBkgnd函数来刷背景的
3、贴图的时机:(这个结论待定...刚才明明测试已经不闪了,现在发现还是很闪)
因为界面是我自绘的所以用了双缓冲机制,先绘到bitmap里然后在OnPaint里贴图,如果界面比较简单是没问题的,改变窗口大小等操作界面都很流畅。
但是包含其他耗资源的窗口的时候就有问题了,例如我现在在窗口里添加的(Skyline)GIS控件加载了地图后。
具体表现为:改变窗口大小的时候窗口就会在:透明->贴图->透明->贴图...这样重复下去,看起来闪的很厉害,而且闪的时候GIS窗口(包含InfoTree和GIS主窗)也和主窗口一样:透明->显示->透明->显示... 的重复下去,闪的很厉害。
最后改在OnEraseBkgnd贴图主窗口没问题了,主窗口部分完全不闪了,GIS主窗口在改变大小的时候绘制有点延时产生部分的拖尾,不过这个不是我能解决的了,而且GIS控件的窗口出现的透明时间减少了很多可以忽略了
4、OnEraseBkgnd传进来的wparam总是有效的,而OnPaint传进来的总是0
浙公网安备 33010602011771号