博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
游戏截屏
阅读量:7287 次
发布时间:2019-06-30

本文共 1539 字,大约阅读时间需要 5 分钟。

CRect GameRect;//保存游戏窗口矩形用  if (theApp.m_hGameHand !=NULL)//这个需要自己去保存游戏窗口句柄我保存在theApp.m_hGameHand 里  {   ::ShowWindow(theApp.m_hGameHand,SW_SHOW);//把游戏显示出来   ::PostMessage(theApp.m_hGameHand,WM_SYSCOMMAND,SC_RESTORE,0);//防止游戏最小化,   Sleep(200);//防止游戏窗口未弹出      //让游戏窗口置顶   ::SetWindowPos(theApp.m_hGameHand,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);   //获取游戏窗口的坐标   ::GetWindowRect(theApp.m_hGameHand,&GameRect);      //把游戏窗口移动到屏幕中间位置防止被覆盖窗体,被覆盖的DC是无法截取的   int x = ((GetSystemMetrics(SM_CXSCREEN)-GameRect.Width())/2);   int y = ((GetSystemMetrics(SM_CYSCREEN)-GameRect.Height())/2);   ::MoveWindow(theApp.m_hGameHand,x,y,GameRect.Width(),GameRect.Height(),TRUE);      //根据游戏窗口句柄获得游戏HDC   HDC hSr = ::GetDC(theApp.m_hGameHand);   //创建一个与游戏HDC兼容的HDC   HDC   hdc=::CreateCompatibleDC(hSr);     //创建一个与游戏HDC兼容的图位 大小为游戏窗口大小   HBITMAP   hbmp=::CreateCompatibleBitmap(hSr,GameRect.Width(),GameRect.Height());     ::SelectObject(hdc,(HGDIOBJ)hbmp);        //::StretchBlt(hdc,0,0,GameRect.Width(),GameRect.Height(),hSr,0,0,GameRect.Width(),GameRect.Height(),SRCCOPY);     ::BitBlt(hdc,0,0,GameRect.Width(),GameRect.Height(),hSr,0,0,SRCCOPY|SRCPAINT);     //保存成图片,这里可以改成发送图片数据到远程机器,   CBmp::SaveBmp(hbmp,"c:\\Test.bmp");//自己个bmp保存的函数好了,构建一个bmp文件头然后接上数据  ::ReleaseDC(theApp.m_hGameHand,hSr);   ::ReleaseDC(this->m_hWnd,hdc);   DeleteObject(hbmp);   ::DeleteDC(hSr);   ::DeleteDC(hdc);    //取消置顶窗口   ::SetWindowPos(theApp.m_hGameHand,HWND_TOPMOST,0,0,0,0,~SWP_NOSIZE|~SWP_NOMOVE);  }

转载于:https://www.cnblogs.com/rogee/archive/2010/10/11/1847954.html

你可能感兴趣的文章
极速免费-Magento开源产品上传利器magmi
查看>>
magento如何获得产品的属性Minimum Qty Allowed in Shopping Cart
查看>>
FreeMarker循环变量内建函数
查看>>
Python中time模块详解
查看>>
java 的模板方式设计模式
查看>>
跳转到servlet出现java.lang.InstantiationException:
查看>>
RedHat7 配置VNCServer
查看>>
git 回滚版本
查看>>
Nginx反向代理实现会话(session)保持的两种方式
查看>>
Nginx配置指令location匹配符优先级和安全问题
查看>>
sc create 创建启动服务带参数 目录不能有空格
查看>>
Glusterfs初体验
查看>>
Centos搭建SVN服务器三步曲
查看>>
NC-ERP IUFO系统管理要点
查看>>
linux下将文件设置为swap
查看>>
jquery filter()方法
查看>>
make和makefile
查看>>
eclipse git 强制覆盖本地文件
查看>>
elasticsearch查询关键字slop
查看>>
[Unity3d]Player Settings导出设置
查看>>