比较简单, 下面直接贴代码了:
// IDirect3DDevice8* pDevice;// RECT rcScreen; // = {0, 0, 1024, 768}; // HDC hdc;// HBITMAP hbitmap;// 忽略返回值检查,应该按需要加入错误处理IDirect3DSurface8* pfb;pDevice->CreateImageSurface(rcScreen.right, rcScreen.bottom, D3DFMT_A8R8G8B8, &pfb);pDevice->GetFrontBuffer(pfb);D3DLOCKED_RECT lr;pfb->LockRect(&lr, NULL, D3DLOCK_READONLY);BITMAPINFOHEADER bih;memset(&bih, 0, sizeof(BITMAPINFOHEADER));bih.biSize = sizeof(BITMAPINFOHEADER);bih.biWidth = rcScreen.right;bih.biHeight = rcScreen.bottom;bih.biPlanes = 1;bih.biBitCount = 32;bih.biCompression = BI_RGB;SetDIBits(hdc, hbitmap, 0, rcScreen.bottom, lr.pBits, &bih, DIB_RGB_COLORS);pfb->UnlockRect();pfb->Release();
继续阅读与本文标签相同的文章
-
从一个 JDK6 BUG 看 JAVA 数组创建
2026-06-02栏目: 教程
-
Beanstalkd 介绍
2026-06-02栏目: 教程
-
Sun 微博 Slynkr 部署记录
2026-06-02栏目: 教程
-
取得 WinNT/2000 下的用户名
2026-06-02栏目: 教程
-
实现 Rundll.exe 功能的简单代码
2026-06-02栏目: 教程
