ホームページ > バックエンド開発 > C++ > Win32 GDI を使用して Windows アプリケーションのスクリーンショットをキャプチャする方法

Win32 GDI を使用して Windows アプリケーションのスクリーンショットをキャプチャする方法

Patricia Arquette
リリース: 2024-12-08 13:23:12
オリジナル
987 人が閲覧しました

How to Capture Screenshots of Windows Applications Using Win32 GDI?

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

現在の画面表示のキャプチャは、アプリケーション開発において一般的なニーズです。 Windows では、これは Win32 のグラフィック デバイス インターフェイス (GDI) 関数を使用して効率的に実現できます。

解決策

次のコード スニペットは、次のコード スニペットは、 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);
hBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hOldBitmap));
DeleteDC(hMemoryDC);
DeleteDC(hScreenDC);
ログイン後にコピー

説明

  • GetDC は画面のデバイス コンテキストを取得します。
  • CreateCompatibilityDC は、以下と互換性のあるメモリ デバイス コンテキストを作成します。画面 DC.
  • GetDeviceCaps は現在の画面を取得します
  • CreateSupportBitmap は、画面 DC と互換性があり、解像度に一致するビットマップを作成します。
  • SelectObject は、ビットマップをメモリ DC に選択します。
  • BitBlt は、画面からピクセルをコピーします。 DC をメモリ内のビットマップに DC します。
  • DeleteDC はメモリと画面を解放しますDC。

以上がWin32 GDI を使用して Windows アプリケーションのスクリーンショットをキャプチャする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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