MFC如何刷新图像控件区域?

我想做一个重力小球,初期就是一个球,从固定点落下,然后在重力作用下,逐渐停在地面上。而现在遇到一个问题,就是怎么样才能刷新小球运动所在的图像控件区域,也就是,让小球在一个... 我想做一个重力小球,初期就是一个球,从固定点落下,然后在重力作用下,逐渐停在地面上。而现在遇到一个问题,就是怎么样才能刷新小球运动所在的图像控件区域,也就是,让小球在一个矩形区域跳来跳去,而其他区域不重绘刷新,我在OnTimer函数中这样写:
(m_rec已经捕获了IDC_SHOWWID控件的大小)
HWND hWnd = GetDlgItem(IDC_SHOWWID)->GetSafeHwnd();
::InvalidateRect(hWnd,&m_rec,TRUE);
为什么结果会不对呢?小球没有动,但调试一下会知道,小球实际上是在动的。
另外,我改成invalidaterect(&m_rec),实现的结果,只是从客户区(0,0)开始,大小为m_rec大小的区域~~很郁闷啊!各位大虾施以援手吧!!!
展开
 我来答
冰上游鱼
推荐于2016-09-23 · TA获得超过636个赞
知道小有建树答主
回答量:951
采纳率:0%
帮助的人:702万
展开全部
没有代码,所以不大明白你的意思.其实最普遍的刷新方法应该是用双缓冲,这样刷新时不会闪烁.
你不妨试试InvalidateRect(hWnd,&m_rec,TRUE);直接调用,不用全局符号.
如果不行,那就不要刷新,在OnTimer (_) 里画所有的东西,即先画背景(也就是先画一个这个区域的矩形) ,再画小球,这样肯定行.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式