窗体重绘

我运行画图案的函数,在程序上显示某个图案,我操作另一个窗口覆盖这个窗口再移开到这个窗口之外,原来那个图形消失了。如何做才能显示原来的图像?(不要简单的说在onpaint(... 我运行画图案的函数,在程序上显示某个图案,我操作另一个窗口覆盖这个窗口再移开到这个窗口之外,原来那个图形消失了。如何做才能显示原来的图像?(不要简单的说在onpaint()中绘制,因为这个图像是变化的) 展开
 我来答
yimsungnam
2010-09-19 · 超过19用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:56.7万
展开全部
用双缓冲解决.
自己的后台缓冲hMemDC.
把所有要显示到窗口上的画图操作都在hMemDC上做,
然后在WM_PAINT里把hMemDC中的图BitBlt到窗口自己的DC中就可以了.

窗口被其它窗口遮挡后离开, 系统会产生刷新消息.
tongfans
2010-09-16 · TA获得超过1127个赞
知道小有建树答主
回答量:683
采纳率:0%
帮助的人:730万
展开全部
加个定时器,在WM_TIMER事件的处理程序中,让窗体无效。
在WM_PAINT事件处理程序中,取当前时间,根据时间进行图案绘制。
考虑效率问题,图形画到内存DC中,然后BitBlt到窗体。
这样大概可以实现20+fps的动态图形绘制。
如果不满足要求的话,自己实现一个高精度定时器,在按照之前的方法绘制,可以达到100fps左右。
如果还不满足要求的话,只能考虑DirectX或者其他方法了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L_o_o_n_i_e
2010-09-16 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:5234万
展开全部
用MFC自建的Doc-View框架下的程序,都会自动重画的。
你一定改了什么。

可以在CView 里什么地方 加上 调用语句
OnUpdate(NULL,0,NULL);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式