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

Comment puis-je capturer une capture d'écran d'une application Windows à l'aide de l'API Win32 ?

DDD
Libérer: 2024-12-05 22:12:17
original
1017 Les gens l'ont consulté

How Can I Capture a Windows Application Screenshot Using the Win32 API?

Capture d'écran d'application Windows

Dans la programmation Windows, capturer une capture d'écran de l'écran actuel est une exigence courante. A cet effet, l'API Win32 fournit les fonctions nécessaires pour acquérir une représentation bitmap de l'écran.

Code de capture d'écran Win32

Pour prendre une capture d'écran dans une application Windows à l'aide Win32, suivez ces étapes :

HDC hScreenDC = GetDC(nullptr);
Copier après la connexion

Récupérez le contexte de l'appareil de l'ensemble écran.

HDC hMemoryDC = CreateCompatibleDC(hScreenDC);
Copier après la connexion

Créez un contexte de périphérique compatible pour copier le bitmap de l'écran.

int width = GetDeviceCaps(hScreenDC,HORZRES);
int height = GetDeviceCaps(hScreenDC,VERTRES);
Copier après la connexion

Obtenez la largeur et la hauteur de l'écran en pixels.

HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC,width,height);
Copier après la connexion

Créez un bitmap compatible pour contenir l'image à l'écran.

HBITMAP hOldBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hBitmap));
Copier après la connexion

Sélectionnez le bitmap compatible dans l'appareil compatible. contexte.

BitBlt(hMemoryDC,0,0,width,height,hScreenDC,0,0,SRCCOPY);
Copier après la connexion

Copiez l'image d'écran sur le bitmap compatible à l'aide du transfert de blocs de bits (BitBlt).

hBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hOldBitmap));
Copier après la connexion

Restaurez la sélection bitmap précédente dans le contexte du périphérique de mémoire.

DeleteDC(hMemoryDC);
DeleteDC(hScreenDC);
Copier après la connexion

Supprimez les deux contextes d'appareil pour libérer des ressources.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal