| 12
 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
 
 |  
	ShowWindow(hDesktopWnd, SW_SHOW);
        SetForegroundWindow(hDesktopWnd);
 
	RECT rect;
	bool bValue = GetWindowRect(hDesktopWnd, &rect);
	if (! bValue) {
		DWORD err = GetLastError();
                return;
	}
 
	int xScreen,yScreen;	//check if the window is out of the screen or maximixed <Qiang>
	//int xshift = 0, yshift = 0;
	xScreen = GetSystemMetrics(SM_CXSCREEN);
	yScreen = GetSystemMetrics(SM_CYSCREEN);
	if(rect.right > xScreen)
		rect.right = xScreen;
	if(rect.bottom > yScreen)
		rect.bottom = yScreen;
	if(rect.left < 0){
		//xshift = -r.left;
		rect.left = 0;
	}
	if(rect.top < 0){
		//yshift = -r.top;
		rect.top = 0;
	}
 
	if (hauteur < 0) hauteur = rect.bottom - rect.top;
	if (largeur < 0) largeur = rect.right - rect.left;
 
	if (abscisse < 0) abscisse = rect.left;
	if (ordonnee < 0) ordonnee = rect.top;
 
	HDC ScreenSrc;
	ScreenSrc = GetWindowDC(hDesktopWnd);
	if (ScreenSrc == NULL) return;
 
// create a memory context to select the dibsection into
        HDC memDC = CreateCompatibleDC(ScreenSrc);
        HBITMAP hbmp=CreateCompatibleBitmap(ScreenSrc,largeur,hauteur);
        SelectObject(memDC, hbmp);
          BitBlt(memDC,0,0,largeur,hauteur,ScreenSrc,abscisse,ordonnee,SRCCOPY); | 
Partager