ホームページ > バックエンド開発 > C++ > Win32 API を使用して画面全体のスクリーンショットをキャプチャするにはどうすればよいですか?

Win32 API を使用して画面全体のスクリーンショットをキャプチャするにはどうすればよいですか?

DDD
リリース: 2024-12-05 11:16:11
オリジナル
884 人が閲覧しました

How to Capture a Screenshot of the Entire Screen Using the Win32 API?

Win32 を使用した Windows アプリケーションでのスクリーンショットの取得

アクティブな画面のスクリーンショットの取得は、Windows アプリケーションの開発における一般的な要件です。 Win32 API は、画面上のコンテンツをキャプチャして画像ファイルとして保存するために必要な関数を提供します。

Win32 でスクリーンショットを撮る方法

するにはWin32 アプリケーションのスクリーンショットを取得するには、次の手順に従います。

  1. を使用して表示画面のデバイス コンテキストを取得します。 GetDC(nullptr).
  2. 描画用に CreatePracticalDC(hScreenDC) を使用して互換性のあるデバイス コンテキストを作成します。
  3. GetDeviceCaps(hScreenDC, HORZRES) および GetDeviceCaps(hScreenDC, VERTRES) を使用して画面の寸法を決定します。 .
  4. 互換性のあるファイルを作成しますCreateSupportBitmap(hScreenDC, width, height) を使用して、ビットマップを作成してスクリーンショット データを保存します。
  5. SelectObject(hMemoryDC, hBitmap) を使用して、作成したビットマップを互換性のあるデバイス コンテキストに選択します。
  6. 画面の内容をコピーしますBitBlt(hMemoryDC, 0, 0, width, height, hScreenDC, 0, 0, SRCCOPY).
  7. 互換デバイス コンテキストからビットマップの選択を解除し、SelectObject(hMemoryDC, hOldBitmap) を使用して元のビットマップを復元します。
  8. 互換デバイス コンテキストと画面デバイスの両方を削除してリソースを解放しますDeleteDC(hMemoryDC) を使用したコンテキストとDeleteDC(hScreenDC).

このプロセスにより、画面全体をキャプチャし、ビットマップ イメージとして保存できます。必要に応じて、ビットマップをファイルに保存したり、アプリケーション内で表示したりできます。

以上がWin32 API を使用して画面全体のスクリーンショットをキャプチャするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート