Maison >développement back-end >C++ >Comment capturer une capture d'écran de tout l'écran à l'aide de l'API Win32 ?

Comment capturer une capture d'écran de tout l'écran à l'aide de l'API Win32 ?

DDD
DDDoriginal
2024-12-05 11:16:11897parcourir

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

Prendre des captures d'écran dans des applications Windows avec Win32

Obtenir une capture d'écran de l'écran actif est une exigence courante dans le développement d'applications Windows. L'API Win32 fournit les fonctions nécessaires pour capturer le contenu à l'écran et l'enregistrer sous forme de fichier image.

Comment prendre une capture d'écran dans Win32 ?

Prendre une capture d'écran dans une application Win32, suivez ces étapes :

  1. Récupérez le contexte de l'appareil de l'écran d'affichage à l'aide GetDC(nullptr).
  2. Créez un contexte de périphérique compatible à l'aide de CreateCompatibleDC(hScreenDC) pour le dessin.
  3. Déterminez les dimensions de l'écran à l'aide de GetDeviceCaps(hScreenDC, HORZRES) et GetDeviceCaps(hScreenDC, VERTRES) .
  4. Créez un bitmap compatible pour stocker la capture d'écran données à l'aide de CreateCompatibleBitmap(hScreenDC, width, height).
  5. Sélectionnez le bitmap créé dans le contexte du périphérique compatible à l'aide de SelectObject(hMemoryDC, hBitmap).
  6. Copiez le contenu de l'écran dans le bitmap à l'aide de BitBlt( hMemoryDC, 0, 0, largeur, hauteur, hScreenDC, 0, 0, SRCCOPY).
  7. Désélectionnez le bitmap du contexte de périphérique compatible et restaurez le bitmap d'origine à l'aide de SelectObject(hMemoryDC, hOldBitmap).
  8. Libérez les ressources en supprimant à la fois le contexte de périphérique compatible et le périphérique d'écran. contexte en utilisant DeleteDC(hMemoryDC) et DeleteDC(hScreenDC).

Ce processus vous permet pour capturer la totalité de l'écran et le stocker sous forme d'image bitmap. Le bitmap peut ensuite être enregistré dans un fichier ou affiché dans l'application si nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn