【发布时间】:2010-01-27 00:56:01
【问题描述】:
我有一个带孩子的主窗口。我需要以编程方式截取屏幕截图以裁剪并将它们绘制回我的主窗口。我这样做的方法是:
HDC hDC = GetWindowDC(hWnd);
HDC memDC = CreateCompatibleDC(hDC);
HBITMAP memBM = CreateCompatibleBitmap(hDC, Width, Height);
HBITMAP OldBM = (HBITMAP)::SelectObject(memDC, memBM );
BitBlt(memDC, 0, 0, Width, Height , hDC, BEGINX, BEGINY, SRCCOPY);
int Bpp = GetDeviceCaps(hDC,BITSPIXEL);
int size = Bpp/8 * ( Width * Height );
BYTE *lpBits = new BYTE[size];
GetBitmapBits(memBM, size, lpBits);
但这并没有捕获子窗口的 OpenGL 部分,而是在应该进行 OGL 渲染的区域绘制空白。
【问题讨论】:
标签: winapi opengl screenshot