我正在尝试从屏幕的 0x0(左上角)位置获取 500x500 的屏幕截图并将其放在窗口中。
这是我的代码(hwnd
是我的窗口句柄):
HDC appDc = GetDC(hwnd);
HDC dc = GetDC(NULL);
HBITMAP bitmap = CreateCompatibleBitmap(dc, 500, 500);
HDC memoryDc = CreateCompatibleDC(dc);
SelectObject(memoryDc, bitmap);
BitBlt(appDc, 0, 0, 500, 500, dc, 0, 0, SRCCOPY);
ShowWindow(hwnd, SW_SHOW);
SetWindowText(hwnd, _T("Window"));
我在这里想念什么?我在窗口内变黑而不是屏幕截图。
编辑
在我更改memoryDc
为dc
之前它之后它可以工作BitBlt(appDc, 0, 0, 500, 500, memoryDc, 0, 0, SRCCOPY);
但现在问题是 SelectObject 不起作用。我的意思是它没有将图像放在 HBITMAP 中。但是 BitBlt 正在从复制dc
到appDc