我有一個帶兒童的主窗口。我需要以編程方式截取屏幕截圖,然後在我的主窗口上裁剪並繪製它們。我這樣做的方式是:獲取運行OpenGL的子窗口的屏幕截圖(Windows)
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渲染被認爲是該地區。
顯然,如果源窗口是子項目,則無法使用DWM縮略圖來實現。我煩了。 – 2010-01-27 18:46:54