1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| // Procédure principale
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// Variable qui détermine si l'utilisateur a appuyé sur Echap
char Quitter = 0;
// Récupère le Handle du bureau
HWND hwndDesktop = GetDesktopWindow();
// Récupère la zone de dessin du bureau
HDC hdcDesktop = GetWindowDC(hwndDesktop);
// Temp context
HDC hdcTemp = CreateCompatibleDC(NULL);
HINSTANCE hInstance;
PAINTSTRUCT ps;
HBITMAP bitmap1 = LoadBitmap(hinstance,MAKEINTRESOURCE(001));
HBITMAP mask1 = LoadBitmap(hinstance,MAKEINTRESOURCE(101));
// Début de boucle
do {
if (GetAsyncKeyState(VK_ESCAPE)){
Quitter = 1;
}
//Dessin du masque
SelectObject(hdcTemp, mask1);
BitBlt(hdcDesktop, 400, 400, 50, 50, hdcTemp, 0, 0, SRCAND);
//Dessin de l'image sur le masque
SelectObject(hdcTemp, bitmap1);
BitBlt(hdcDesktop, 400, 400, 50, 50, hdcTemp, 0, 0, SRCPAINT);
Sleep(100);
} while (Quitter == 0);
// Libère le contexte de périphérique du bureau
ReleaseDC(hwndDesktop, hdcDesktop);
// Efface le dessin
InvalidateRect(0, 0, 0);
// Quitte le programme
return 0;
} |
Partager