スタック オーバーフロー ユーザーの皆様、こんにちは。次のコードで CreateCompatibleBitmap() を正しく使用していないようです。
#include <windows.h>
using namespace std;
int main() {HDC hdc=GetDC(HWND_DESKTOP); HDC MemDC=CreateCompatibleDC(hdc);
HBITMAP hBit=CreateCompatibleBitmap(hdc,1366,768);
SelectObject(MemDC,hBit);
BitBlt(hdc,0,0,1366,768,MemDC,0,0,SRCCOPY); //Screen turns black
DeleteObject(hBit);
ReleaseDC(HWND_DESKTOP,hdc);
ReleaseDC(NULL,MemDC);
DeleteDC(MemDC);
DeleteDC(hdc);
}
CreateCompatibleBitmap() はデスクトップ DC の 1366x768 セクションを返すと思っていましたが、BitBlt() の後に黒い画面が表示されます。CreateCompatibleBitmap を使用する代わりに、ビットマップ ファイルを hBit にロードすると、すべてが希望どおりになるため、問題は CreateCompatibleBitmap() のみにあると思います。この機能を正しく使用していますか? 私がしなければならないのに、私がしていないことはありますか?