关于保存当前视图?

mefish 2001-09-03 09:39:02
我在我的视图(CView)上实时画曲线,不断向右的那种,但是一旦最小化,最大化,或者上面有其他窗口覆盖时就没有了,请问该如何保存当前视图,并且在以上情况下可以快速恢复呢?
...全文
133 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
mefish 2001-09-04
  • 打赏
  • 举报
回复
用DirectDraw有点杀鸡用牛刀了 :)
MSVCer 2001-09-03
  • 打赏
  • 举报
回复
这是一段代码,不过需要修改一下,不将位图对象做为局部变量
void CCsdn_sdiView::OnDraw(CDC* pDC)
{
CCsdn_sdiDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

DWORD time1=GetTickCount();

//*写内存DC,此段代码与直接写DC取其一
CDC memDC;
CRect rc;
GetClientRect( &rc );

memDC.CreateCompatibleDC( pDC );
CBitmap m_ClientBmp;
m_ClientBmp.CreateCompatibleBitmap( pDC, rc.Width(), rc.Height() );

CBitmap *pOldBmp = memDC.SelectObject( &m_ClientBmp );

//在内存DC上处理 
memDC.PatBlt( 0, 0, rc.Width(), rc.Height(), PATCOPY );

//可以在此处添加向内存窗口上画矢量线的代码
for(int x=0;x<rc.Width();x++)
for( int y=0;y<rc.Height();y++)
{
memDC.SetPixelV( x, y, RGB( rand()%256, rand()%256, rand()%256 ) );
}

//复制内存DC上已做好内容到屏幕上
pDC->BitBlt( 0, 0, rc.Width(), rc.Height(),
&memDC, 0, 0, SRCCOPY );

memDC.SelectObject( pOldBmp );
thaliahujie 2001-09-03
  • 打赏
  • 举报
回复
Using document.
蒋晟 2001-09-03
  • 打赏
  • 举报
回复
用DirectDraw吧
mefish 2001-09-03
  • 打赏
  • 举报
回复
由于我的数据是动态获得的,不是说1千个数据一次性获得,每秒钟产生一个,如果放在OnDraw里的话,就必须不停的重画,会引起闪烁的吧
fd2000 2001-09-03
  • 打赏
  • 举报
回复
只要把绘图的代码写在View类OnDraw()中,把数据放在Doc类中。
在OnDraw中可以取到当前的Doc类,然后根绝Doc类的东西画图。
meilideme 2001-09-03
  • 打赏
  • 举报
回复
Using document
还要说什么吗
mefish 2001-09-03
  • 打赏
  • 举报
回复
你的代码我不太看得懂,等我弄明白了,我再给你加10分

16,548

社区成员

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

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

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