怎么只更新位图的一个区域

lizmei001 2002-03-30 11:30:35
我要在一个位图上写字,并且这些字是变化的,我想只更新字变化的区域而不是要更
新整个位图再写上字
请问怎么样保存这个区域的原始位图
...全文
101 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xb4270293 2002-03-31
  • 打赏
  • 举报
回复
其实使用CmemDC来刷新,完全能够确保屏幕不闪烁,只更新区域,会太麻烦,而且无必要。
duqiang2050 2002-03-31
  • 打赏
  • 举报
回复
说得好。
首先可以用InvalidateRect(CRect(x1,y1,x2,y2))局部刷新。
但是,应该选择用双缓冲来做,正像上面说的,不会闪烁,而且速度比InvalidateRect的快
eastrock 2002-03-31
  • 打赏
  • 举报
回复
利用双缓冲,先把图在内存中绘好,再把它一下子给“贴”出来
springleo 2002-03-31
  • 打赏
  • 举报
回复
在下有个类似问题:
我用双缓冲绘图,闪烁是消除了,但速度慢得象动画。(在PI 32M上,见笑了)。
双缓冲只是比直接画多了一句pDC->BitBlt(...,memBufDC,...).其他语句都差不多。可直接画(也用了Bitblt(....)呀)却蛮快的。究竟是那一步使之慢了许多的呢?
lizmei001 2002-03-30
  • 打赏
  • 举报
回复
我去试试看
不过我觉得好像不可能这样吧
Tasehouny 2002-03-30
  • 打赏
  • 举报
回复
首先你要知道你更新的区域,可以把它存在一个CRect 对象中,然后你可以画好文字后用InvalidateRect()只更新那个区域

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧