已经确定就是这函数,估计是一秒钟拷贝一次,一到GetDIBits就占到70%,奇怪.
用的办法跟大家的一样就是先生成HBITMAP,然后在GetDIBits.
用的办法跟大家的一样就是先生成HBITMAP,然后在GetDIBits.
解决方案 »
- 关于listctrl的问题
- 一个.exe程序怎么让它可以开机就可以启动,但是不要写成服务程序
- 普通的内存读写是否属于内核操作?请教~~~~~~~~~~~~~~~~~~~~~~~`
- 真心求你!资源工程里的define +数字是什么意思,另外我把英文资源汉化出现问题
- 《windows核心编程》第五版的源代码运行出错?怎么解决?
- 为什么说 微型计算机的结构是照搬巨型计算机的结构? 请举例说明
- 问一个比较傻的问题,win98,winxp,win2000,win2003各最大支持多少个串口?
- 向高手请教 动态库调用的问题
- 编译问题,大虾出招,我编译了一个网上下载的程序,出现如下错误,请问错误的原因,尤其是最后一个错误
- 请问各位大哥,在vc中如果在下拉框中显示头像列表,像Oicq一样的选择头像的?我真的很急耶,
- 怪怪地问:debug完成后怎么输出程序的release版本。。。
- 也是kernel的问题,请进来看...
BITMAP g_BMP;
HBITMAP hBitmap=pDoc->CopyScreenToBitmap(/*&R*/);
g_b=CBitmap::FromHandle(hBitmap);
g_b->GetBitmap( &g_BMP);
DWORD dwCount;
dwCount=g_BMP.bmWidthBytes*g_BMP.bmHeight;
g_b->GetBitmapBits(dwCount, LPVOID (pDoc->m_test_buf[nFrame]));
如果是24位,你得到的直接是位图数据区,接下来你应该知道该怎么做了,加上文件头,信息头就成了bmp了。如果是32位,简单的方法是直接略去alpha通道就成了24位了,如果是16为,建议还是用GetDIBits吧:)