dfdf=MemBitmap.CreateCompatibleBitmap(&MemDC,A4_W*xPix, A4_H*yPix);

dfdf=MemBitmap.CreateCompatibleBitmap(&dc,A4_W*xPix, A4_H*yPix);
有什么区别?竟然会导致A4_W*xPix或者A4_H*yPix过大时,函数返回一个“存储空间不足,无法处理此命令”的错误。     有时候只能用窗口屏幕的60%大小作为参数传递进去,才不会报错!
最奇怪的是玩了“魔兽争霸”之后,同样用CClientDC dc(this);的dc作为参数,也会报“存储空间不足,无法处理此命令”的错误,只有注销系统才能恢复正常!
 msdn上没写为什么CreateCompatibleBitmap会失败,我知道应该避免nwidth和nheight过大,只是想弄清楚,为什么不同的cdc对象,允许的大小不同,而且玩游戏之后,为什么会影响到我的程序设置一个正常大小的CBitmap

解决方案 »

  1.   

    A4_W*xPix, A4_H*yPix过大?兼容位图实际上是需要分配内存的,如果它们过大当然不能成功了。
      

  2.   

    资源分配不足
    一般memdc会可以大一点
      

  3.   

    A4_W*xPix, A4_H*yPix过大?兼容位图实际上是需要分配内存的,如果它们过大当然不能成功了。
    _____________________________________________________________
    MemBitmap.CreateCompatibleBitmap(&dc,A4_W*xPix, A4_H*yPix);
    难道这种方式就不用分配内存?为什么a4_W可以很大呢? 如果是分配内存得话,为什么玩了魔兽,退出之后,用MemBitmap.CreateCompatibleBitmap(&dc,A4_W*xPix, A4_H*yPix); 也不行了? 其它进程怎么影响到本进程了?
      

  4.   

    http://blog.csdn.net/bobob/archive/2005/12/29/565188.aspx
      

  5.   

    看了,不过跟我这个关系还是不是很大!
      为什么memdc和dc这两个参数不同,会导致创建bitmap得大小不同!memdc只能创建屏幕60%左右大小的bitmap
     玩魔兽之后,为什么我用dc也不能创建一个屏幕大小的bitmap了!