Windows アプリケーションのスクリーンショット キャプチャ
Windows プログラミングでは、現在の画面のスクリーンショットをキャプチャすることが一般的な要件です。この目的のために、Win32 API は、画面のビットマップ表現を取得するために必要な関数を提供します。
Win32 スクリーンショット コード
Windows アプリケーションでスクリーンショットを取得するには、次のコマンドを使用します。 Win32 の場合は、次の手順に従います。
HDC hScreenDC = GetDC(nullptr);
全体のデバイス コンテキストを取得します。
HDC hMemoryDC = CreateCompatibleDC(hScreenDC);
画面のビットマップをコピーするための互換性のあるデバイス コンテキストを作成します。
int width = GetDeviceCaps(hScreenDC,HORZRES); int height = GetDeviceCaps(hScreenDC,VERTRES);
画面の幅と高さをピクセル単位で取得します。
HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC,width,height);
画面イメージを保持する互換性のあるビットマップを作成します。
HBITMAP hOldBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hBitmap));
互換性のあるビットマップを選択してくださいビットマップを互換性のあるデバイス コンテキストにコピーします。
BitBlt(hMemoryDC,0,0,width,height,hScreenDC,0,0,SRCCOPY);
ビット ブロック転送 (BitBlt) を使用して、画面イメージを互換性のあるビットマップにコピーします。
hBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hOldBitmap));
以前のビットマップ選択をメモリ デバイスに復元します。 context.
DeleteDC(hMemoryDC); DeleteDC(hScreenDC);
両方のデバイス コンテキストを削除してリソースを解放します。
以上がWin32 API を使用して Windows アプリケーションのスクリーンショットをキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。