CreateCompatibleBitmap失败的原因究竟是什么?

ncucf 2006-02-16 03:36:11
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


...全文
691 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
danielzhu 2006-02-18
  • 打赏
  • 举报
回复
可以考虑扩展虚拟内存操作,或者你把C盘的空间农大一点点
ncucf 2006-02-17
  • 打赏
  • 举报
回复
看了,不过跟我这个关系还是不是很大!
为什么memdc和dc这两个参数不同,会导致创建bitmap得大小不同!memdc只能创建屏幕60%左右大小的bitmap
玩魔兽之后,为什么我用dc也不能创建一个屏幕大小的bitmap了!
bobob 2006-02-17
  • 打赏
  • 举报
回复
http://blog.csdn.net/bobob/archive/2005/12/29/565188.aspx
ncucf 2006-02-17
  • 打赏
  • 举报
回复
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);

也不行了? 其它进程怎么影响到本进程了?
vcmute 2006-02-16
  • 打赏
  • 举报
回复
资源分配不足
一般memdc会可以大一点
xuzheng318 2006-02-16
  • 打赏
  • 举报
回复
系统内存不足?
DentistryDoctor 2006-02-16
  • 打赏
  • 举报
回复
A4_W*xPix, A4_H*yPix过大?

兼容位图实际上是需要分配内存的,如果它们过大当然不能成功了。
ncucf 2006-02-16
  • 打赏
  • 举报
回复
up

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧