求解救,按钮界面
我在做一个程序,
程序是这样的:一个主界面+一个子对话框(带有几十个按钮)。
问题是:当按钮最小化后再点击打开时,那(带有几十个按钮)的子对话框刷新界面时,按钮是一个一个的刷新,很慢,很难看,不知是什么原因。双缓冲,剪辑子窗口也设置,但解决不了。求帮忙
希望:各位能帮我调试一个代码,找出原因来。
代码在这:http://yun.baidu.com/share/link?shareid=1682958422&uk=2852477476
[解决办法]
工程打不开 你用的什么版本?
[解决办法]
如果界面要是固定的话,可以认为上面是一张图,直接贴图,WM_LBUTTDOWN的时候判断点击的位置,然后执行响应的动作,当然提前把各个按钮的RECT计算好~
[解决办法]
为什么我运行你的程序 没有一个一个绘制 刷的一下子全OK了
[解决办法]
带按钮的对话框有没有 WS_CLIPCHILDREN 样式?
如果没有的话试试加上看看
[解决办法]
感觉有时加了WS_CLIPCHILDREN,效果反而糟糕了,去掉WS_CLIPCHILDREN试试
[解决办法]
若有任务管理器在你的界面上不停移动,你会看到你的界面刷新的更厉害
对于XButton类
内存dc设为类成员变量
SetImage的时候以及各种事件响应的时候在内存dc(没创建先创建)上重绘(位图需要改变的时候才绘制)
Onpaint只干一件事 把memdc bitblt到paintdc
反正原则是OnPaint里干的事尽量少
位图需要改变的时候才重绘 而不是每次刷新就重绘一遍
这样处理以后 非按钮点击响应时,一般的窗体刷新 最大化最小化刷新时(只调用OnPaint里的bitblt,而不需要调用具体的绘制)会很快,速度只跟按钮尺寸有关与具体的绘制实现无关(用慢的跟蜗牛的GDI+,跟用很快的GDI,在这时候速度是一样的)。
[解决办法]