问题:
类Class A继承自CScrollview类类A中实现在界面中画图,具体是在Picture Control控件中画图;
画图时需要调用GetClientRect(rect)获取rect.bottom的值;操作方法:
启动调试,发现获取rect.bottom的值为413,在程序运行的情况下,再次刷新界面,发现得到的rect.bottom值变为396,整个过程中并没有改变界面的的大小。而且发现只有在刚开始启动调试时的值为413,后面刷新时值都为396.为什么会这样?
难道413和396的单位不同么。?不太明白
类Class A继承自CScrollview类类A中实现在界面中画图,具体是在Picture Control控件中画图;
画图时需要调用GetClientRect(rect)获取rect.bottom的值;操作方法:
启动调试,发现获取rect.bottom的值为413,在程序运行的情况下,再次刷新界面,发现得到的rect.bottom值变为396,整个过程中并没有改变界面的的大小。而且发现只有在刚开始启动调试时的值为413,后面刷新时值都为396.为什么会这样?
难道413和396的单位不同么。?不太明白
比如我在OnDraw()函数以及其他自定义的函数中调用都是同样的现象
另外,大小不一致又有什么问题呢?你的程序应该可以在不同尺寸下正常显示啊。
非常感谢总是那么及时的回复我觉得你分析的2点都有道理
“窗口的大小也不是每次都一样大的。你最好等程序启动完后再判断。”我如何知道程序启动完成?我程序的思路是,在OnDraw之外先画图,然后在OnDraw内拷贝图,并且在OnDraw里面画坐标轴,发现画坐标轴时获得的rect.bottom(396)与画图时(413)的不一致,从而导致首次运行后,图形不在预期的坐标轴范围之内,即在不同的尺寸下没有正常显示,我这是维护软件,暂时不考虑改动原有的画图方案。
都放 OnDraw 中,OnDraw 时,客户区 已 定。
CSDN效率好高把绘图放在OnDraw中问题得到解决
不过放入OnDraw后还解决了由此带来的其他bug
主要是因程序而已结贴