CRect rect;
....
CBitmap bmpFace;
bmpFace.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
CBitmap* pOldBmp = NULL;
pOldBmp = MemDC.SelectObject(&bmpFace);;
pDC->BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&MemDC,rect.left,rect.top,SRCCOPY);
....
请问,当rect较大(大于一个临界值)时,BitBlt的速度会突然明显下降,为什么??
....
CBitmap bmpFace;
bmpFace.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());
CBitmap* pOldBmp = NULL;
pOldBmp = MemDC.SelectObject(&bmpFace);;
pDC->BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&MemDC,rect.left,rect.top,SRCCOPY);
....
请问,当rect较大(大于一个临界值)时,BitBlt的速度会突然明显下降,为什么??
解决方案 »
- 听说现在做VC界面都用JS、html这些方式写好,然后通过webkit解析显示。
- 如何将一个OLE对象另存为文件?
- VC+ADO+ACCESS 连接的问题求教
- 关于读取BIN文件的问题
- 100分!帮忙作个程序,这是作业,谢谢!!!!!!
- 救命啊!我的程序Debug版没问题,Release随机出现非法操作!
- 给个InstallShield的下载链接吧,谢谢!
- 怎么才能把字符串转换成utf8码? 急哦!!!!!!!!!!!!!!!!!!
- 在SDK主窗口程序中如何加入一个子窗口?并取得控制权?
- 请问各路豪杰:怎样编写UNDO?
- GetDlgItem和GetWindowLong两个函数则么用(肯定结帐)
- 如何在SDI的文档类中获取视图类的指针?
看了。但是还是不知道。里面好像没有谈到缓冲区大小的问题。
能否说具体一点。谢谢。
能否详细一点。
我的程序中有几个CBitmap对象,需要时就将它选入MemDC中,再BitBlt。
CBitmap对象大于一个值时,速度就突然下降:-(。CBitmap对象越多,那个临界值就越小。
why,why,why?Who can help me???
我认为可能不是显存问题。
CBITMAP里面的对象应该是存在系统内存当中的。
假如BITMAP太大的话,就会占用比较大的系统内存空间。
BITBLT的时候,画面也有可能是存在系统内存的,
而系统内存本来就不会很多,可能牵涉到很多的内存分页呀,
还有时候会把一部分不用的暂时移到硬盘上去,
我猜这个临界值大概是16M左右,大家谁来试试看,因为系统最多可能是36M左右。
我试了一下,这个值大概有10M。如果原因真的如你所说,有什么方法改进吗??