MFC画图的问题 20

为什么我在用MFC编写的一个程序在运行之后,点击操作了但是需要好半天才会反应过来,但当我把生成的exe最小化之后,过一会再点击操作,却会很快反应,这是什么地方有问题,与I... 为什么我在用MFC编写的一个程序在运行之后,点击操作了但是需要好半天才会反应过来,但当我把生成的exe最小化之后,过一会再点击操作,却会很快反应,这是什么地方有问题,与Invalidate()有关吗?我设置的是Invalidate(False)(因为不想把以前画的擦掉),但换成Invalidate(TRUE)之后也会快了,不会出现延迟现象,这是怎么回事? 展开
 我来答
poseidon_k
2012-11-06 · TA获得超过2580个赞
知道小有建树答主
回答量:1223
采纳率:0%
帮助的人:330万
展开全部
Invalidate函数原型为void Invalidate( BOOL bErase = TRUE );
若bErase是FLASE,不用背景色重绘窗口客户区;若为TRUE,系统GDI模块会在调用你实现的OnPaint之前向窗口发送一个WM_ERASEBKGND消息,如果你实现了该消息的响应函数OnEraseBkgnd,会调用该函数进行重绘,否则系统GDI模块会调用之前设置的窗口背景色重绘。调用Invalidate(False)时程序界面没有及时响应变化应该是没有适时地重绘导致的。
追问
我想问的是为什么会有延迟,操作后要过一小会才会会出来?
追答
不太了解你程序的具体情况啊,能不能把图形相关代码发出来。
zcy990718
2012-11-05 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:66%
帮助的人:1636万
展开全部
估计是你的重绘有问题,检查GDI资源有无不合理使用,或者死循环或者特别耗时的操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
相思丶猫2C
2012-11-05 · TA获得超过1198个赞
知道小有建树答主
回答量:1432
采纳率:50%
帮助的人:979万
展开全部
也许是你的OnPaint中绘图有问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
专杀卡巴斯基
2012-11-05 · TA获得超过157个赞
知道小有建树答主
回答量:343
采纳率:0%
帮助的人:265万
展开全部
楼主可以选择界面的部分刷新
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式