Maison > développement back-end > C++ > Comment capturer des captures d'écran d'applications Windows à l'aide de Win32 GDI ?

Comment capturer des captures d'écran d'applications Windows à l'aide de Win32 GDI ?

Patricia Arquette
Libérer: 2024-12-08 13:23:12
original
937 Les gens l'ont consulté

How to Capture Screenshots of Windows Applications Using Win32 GDI?

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

Capturer l'affichage actuel de l'écran est un besoin courant dans le développement d'applications. Sous Windows, cela peut être réalisé efficacement à l'aide des fonctions GDI (Graphics Device Interface) de Win32.

Solution

L'extrait de code suivant montre comment prendre une capture d'écran à l'aide de 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);
Copier après la connexion

Explication

  • GetDC récupère un contexte de périphérique pour l'écran.
  • CreateCompatibleDC crée un contexte de périphérique mémoire compatible avec l'écran DC.
  • GetDeviceCaps obtient l'écran actuel résolution.
  • CreateCompatibleBitmap crée un bitmap compatible avec le DC de l'écran et correspondant à la résolution.
  • SelectObject sélectionne le bitmap dans la mémoire DC.
  • BitBlt copie les pixels de l'écran DC au bitmap dans la mémoire DC.
  • DeleteDC libère la mémoire et l'écran DC.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal