OnSize里调用了StretchBlt后,图像的确时大小变化了,但仅仅显示图像所在区原始大小的那部分图,其他的不显示,感觉像是没刷新一样,怎解?
pDC->StretchBlt( 0 , 0 , w , h , &bdc, 0,0,width,height, SRCCOPY );

解决方案 »

  1.   

    在onsize 得到w , h值然后发送刷新信息 在ONPAINT()里调用pDC->StretchBlt( 0 , 0 , w , h , &bdc, 0,0,width,height, SRCCOPY );
      

  2.   

    pDC->StretchBlt( 0 , 0 , w , h , &bdc, 0,0,width,height, SRCCOPY );在OnSize中,有没有根据窗口实际大小,重现生成bdc?窗口大小变了,你的缓存DC大小也要跟着变啊。
    上述代码中的width和height应该是窗口新的尺寸吧,bdc有这么大吗?
      

  3.   

    w  h  与 width height之间的关系可能搞反了。
    如果w h 是原来图像的宽度和高度 Width height是窗口的大小 应该没有问题。另外你的bdc在载入内存位图的时候要将内存位图载入的跟你原始图像的大小要一样,不能小了。
      

  4.   

    w h时窗口大小,Width height是图像大小吧...这个时候时Width height 比w h大时就存在问题,小就正常..
      

  5.   

    好像是bdc时图像大小,没有拉大后的新窗体大..
      

  6.   

    bdc.SelectObject(des_bm);
    des_bm是原图大小,怎么拉大显示呢