J'essaie de faire une impression écran en api win32 avec le code suivant :
BITMAP bm;
WORD biBits;
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
HDC hdcScreen = CreateDCA("DISPLAY", NULL, NULL, NULL);
HDC hdcCompatible = CreateCompatibleDC(hdcScreen); //Création d'un context mémoire compatible
HDC H = CreateCompatibleDC(hdcScreen);//Context destiné à recevoir la future image 8 bits
HBITMAP bmp = CreateCompatibleBitmap(hdcScreen,screenWidth, screenHeight );
SelectObject (hdcCompatible, bmp);//Liaison du HBITMAP avec le Context
BitBlt(hdcCompatible,0,0,screenWidth,screenHeight,hdcScreen,0,0,SRCCOPY);//Copie de l'image de l'écran.
Le compilateur me donne des undefined reference. Pourtant j'ai bien inclus <windows.h>. Quelqu'un sait d'où ca peut venir?
La méthode est mauvaise.
Le Printer driver ne gère pas les DC de la même façon que les Screen DC.
Demander sur le newsgroup pro des apis
(FR : fr.comp.os.ms-windows.programmation
ou US : comp.os.ms-windows.programmer.win32)
pour avoir la méthode MS officielle
Les dimensions de la fenêtre principale, on peut les avoir avec GetWindowRect()
Le hWnd "main" se retrouve par hWndMain = GetDesktopWindow();
Repris d'un post sur forum Hardware.
impression écran APi win32
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html