画面の 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
した後は機能
しますが、問題は SelectObject が機能していないことです。つまり、イメージを HBITMAP に配置していないということです。ただし、BitBlt はからコピーしていますdc
BitBlt(appDc, 0, 0, 500, 500, memoryDc, 0, 0, SRCCOPY);
dc
appDc