本帖最后由 VisualEleven 于 2014-08-14 09:44:09 编辑

解决方案 »

  1.   

    试下用,StretchBlt函数吧,你这个是选入内存吧
      

  2.   


     BitBlt(mdc,0,0,800,0,bufdc,0,600,SRCCOPY);
     
    我指出我所看到的错误。
    0,0,800,0区域无效。 0,600无效。
    估计你是没理解参数。你所指的0,0,800,0 为区域大小。 你所指的 0,600,是指从那个坐标点开始拷贝图片。
      

  3.   

    BOOL BitBlt(HDC hdcDest,
      int nXDest,
      int nYDest,
      int nWidth,
      int nHeight,
      HDC hdcSrc,
      int nXSrc,
      int nYSrc,
      DWORD dwRop);
    hDestDC:指向目标设备环境的句柄。x:指定目标矩形区域左上角的X轴逻辑坐标。y:指定目标矩形区域左上角的Y轴逻辑坐标。nWidth:指定源在目标矩形区域的逻辑宽度。nHeight:指定源在目标矩形区域的逻辑高度。hSrcDC:指向源设备环境的句柄。xSrc:指定源矩形区域左上角的X轴逻辑坐标。ySrc:指定源矩形区域左上角的Y轴逻辑坐标。dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。
      

  4.   

    你的目的DC了?你的hWnd是怎么回事?哪里创建的?
      

  5.   

    还有就是没有把内存dc拷贝到显示dc上、
    BitBlt(hdc,0,0,800,600,mdc,0,0,SRCCOPY);
      

  6.   

    SelectObject(bufdc,BackGround);
    --------> 
    SelectObject(mdc,BackGround);
    BitBlt(mdc,0,0,800,0,bufdc,0,600,SRCCOPY); 
    ------->
    BitBlt(bufdc,0,0,800,0,mdc,0,600,SRCCOPY);