把位图先选入mdc,然后在mdc上画,然后把mdc绘制(拷贝)到memDCmdc.CreateCompatibleDC(&memdc);
m_map.CreateCompatibleBitmap(&mdc,..)
mdc.MoveTo
mdc.LineTo
memdc.BitBlt(...&mdc,...)从你的命名看,你把内存DC给理解错误了
你的例子中
mdc是内存DC
memdc是客户区DC

解决方案 »

  1.   

    同意breath(跨马倚斜桥,满楼红袖招)的意见,另外你的CBitmap m_map;应该放到类的成员里,否则你的函数运行完了他就自动删除了,是不能再次使用它的。
      

  2.   

    我记得以前用SDK写程序的时候,创建位图后要用空白画刷填充一下,不知道在MFC中有没有这个必要
      

  3.   

    breath,拉了一行吧;) m_map还没往mdc里选哪!
    而且CreateCompatibleBitmap也不该以mdc为参数,因为mdc是个内存DC(这名字起反了
    是别扭),所以这样create出来的m_map是黑白位图。应该以memdc为参数。
    btw:别忘了DeleteDCto lgwzxm:
      m_map应该是局部变量(最好还换个名字,别叫m_xxx),因为BitBlt到客户DC以后,
    这个位图就不需要了。还有,Erlin说得对,创建出来的位图是要刷一下的,否则