본문 바로가기
  • fishing...
  • eating...
MISCELLANEOUSNESS

바탕화면 DC 얻기/사용하기

by 회색뿔 2010. 5. 6.


API / 바탕화면 바탕화면도 하나의 윈도우입니다.
윈도우의 핸들을 가져오기 위해서는 GetDesktopWindow()라는 함수를 이용합니다.
또한 바탕화면에 무엇인가를 그리고 싶다던지 화면을 캡쳐하고 싶다면 바탕화면의 DC를 가져와 조작하면 된다.
또다른 방법은 윈도우가 NULL인 DC를 생성하면 된다고 하더군요.
           ex) HDC hDC = GetWinodwDC(NULL);

HWND hWnd = GetDesktopWindow(); 
HDC hDC = GetWinodwDC(hWnd); 

// ...

ReleaseDC(hWnd, hDC);

문자열 출력 방법
UINT SetTextAlign( HDC hdc, UINT fMode );
HDC hdc handle
fMode set hdc sort infomation

설명
TA_TOP 지정한 좌표가 상단좌표가 된다.`
TA_BOTTOM 지정한 좌표가 하단 좌표가 된다.
TA_CENTER 지정한 좌표가 수평 중앙 좌표가 된다.
TA_LEFT 지정한 좌표가 수평 왼쪽 좌표가 된다.
TA_RIGHT 지정한 좌표가 수평 오른쪽 좌표가 된다.
TA_UPDATECP 지정한 좌표대신 CP를 사용하며 문자열 출력후에 CP를 변경한다.
TA_NOUPDATACP CP를 사용하지 않고 지정한 좌표를 사용하며 CP를 변경하지 않는다

case WM_PAINT:
	hdc=BeginPaint(hWnd,&ps);
	SetTextAlign( hdc, TA_CENTER );
	TextOut( hdc,200, 60, "Hello.", 6 );
	TextOut( hdc,200, 80, "Welcome", 8 );
	TextOut( hdc, 200, 100, "HyunJun.K World.", 16 );
	EndPaint(hWnd,&ps);
	return 0;

비트맵 출력하기
	HDC hBitDC = CreateCompatibleDC(hdc);
	HBITMAP hBit = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_BITMAP1));
	HBITMAP hOldBit = (HBITMAP)SelectObject(hBitDC, hBit);
	BitBlt(hdc, 0, 0, rt.right, rt.bottom, hBitDC, 0, 0, SRCCOPY);
	SelectObject(hBitDC, hOldBit);
	DeleteObject(hBit);

Ref.                
Windows Apllication Programming Interface API 정복12장 그리기 참고

WINDOWS API 정복(CD-ROM 1장 포함)
카테고리 컴퓨터/IT
지은이 김상형 (가남사, 2005년)
상세보기

'MISCELLANEOUSNESS' 카테고리의 다른 글

Energy Up HOT6 ix  (6) 2010.05.09
iPhone SDK Image button  (0) 2010.05.01
eclipse + python  (2) 2010.03.20