m_pDC->BitBlt(0,0,Rect.Width(),Rect.Height(),&m_MemDC,0,0,SRCCOPY);
吧第6和第7个参数换成拖动后的新位置。

解决方案 »

  1.   

    我用GDI+做过这个功能
    你要用多个内存缓存才可能达到你说的那个效果的
    比喻你可以用3缓存:m_MemDC1,m_MemDC2,m_DC3
    m_MemDC1保存你的整张图
    m_MemDC2保存m_MemDC1中某块区域的图片(这块区域就是你要绘制到屏幕的区域,你可能要写一个算法计算这个区域)
    m_MemDC2然后把m_MemDC2绘制到设备环境m_DC3(你的窗口)
      

  2.   

    hyg2002 的方法,,  如果图片很的的话,,,,,,本来一个m_MemDC就占用了很大的内存了,, 现在弄了两个DC,,,,,
    可行吗???\
    如果图片几十M--甚至上百M  ???
      

  3.   

    楼主可以使用显示多少载入多少的方式 不过实现有点麻烦.如果按你现在这种方法 是较简单的.2楼的方法试过还不行的话 那么也许是你原图的问题.
    将第6个参数改变后画出的图有什么改变?可以贴出创建m_MemDC的全代码看看.
      

  4.   

    问个小问题了, 大家画图一般都谈论GDI+的.......
    象我上面的代码
    CDC    m_MemDC;//位图CDC对象 
    CDC    *m_pDC; //公用的CDC对象 
    CDC *pDC=GetDC();//公用的CDC对象 
    m_MemDC.CreateCompatibleDC(pDC); 
    ...
    m_MemDC.lineto()
    m_MemDC.MOVETO()
    ...
    m_MemDC.lineto()
    m_MemDC.MOVETO()
    ...
    m_pDC->BitBlt(0,0,Rect.Width(),Rect.Height(),&m_MemDC,0,0,SRCCOPY); 
    我这样写的代码 ,,落后了吗???   
    我自己觉得 应该是比GDI+ 更底层一些吧? (功能比GDI+强吧? 可能操作画图比GDI+要麻烦些?) 
    有学习VC6,,.NET, 学习画图,GDI, GDI+ 的哥们 帮解释下吧!