GetDC

¿øÇü HDC GetDC( HWND hWnd);
MFC ¿øÇü CDC* CWnd::GetDC( );
Àμö ¢ºhWnd:DC¸¦ ±¸ÇÏ°íÀÚ ÇÏ´Â À©µµ¿ì ÇÚµé. NULLÀÏ °æ¿ì Àüü È­¸é¿¡ ´ëÇÑ DC°¡ ±¸ÇØÁø´Ù.
¸®ÅÏ ¼º°øÇϸé DCÇÚµéÀ» ¸®ÅÏÇØ ÁØ´Ù. ½ÇÆнà NULLÀ» ¸®ÅÏÇÑ´Ù.
¼³¸í

À©µµ¿ìÁî ȯ°æ¿¡¼­ È­¸éÀ̳ª ÇÁ¸°ÅÍ·Î Ãâ·ÂÀ» ÇÏ·Á¸é DC¸¦ ¸ÕÀú ±¸ÇØ¾ß ÇÑ´Ù. DC¸¦ ±¸ÇÏ´Â ÀϹÝÀûÀÎ ¹æ¹ýÀº µÎ °¡Áö°¡ Àִµ¥ WM_PAINT ¸Þ½ÃÁö³»¿¡¼­ DC¸¦ ¾òÀ» ¶§´Â BeginPaint, EndPaint ÇÔ¼ö½ÖÀ» »ç¿ëÇϸç ÀÌ ¸Þ½ÃÁö ÀÌ¿ÜÀÇ Äڵ忡¼­ DC¸¦ ¾òÀ» ¶§´Â GetDC, ReleaseDC ÇÔ¼ö½ÖÀ» »ç¿ëÇÑ´Ù. GetDCÀÇ Àμö·Î DC¸¦ ±¸ÇÏ°íÀÚ ÇÏ´Â ÇÚµéÀ» ÁÖ¸é ÀÌ À©µµ¿ìÀÇ DC¸¦ ±¸ÇØÁØ´Ù. À©µµ¿ìÀÇ Å¬·¡½º ½ºÅ¸ÀÏ¿¡ µû¶ó À©µµ¿ì DC¿Í Ŭ·¡½º DC°¡ ±¸ÇØÁö´Â °æ¿ìµµ ÀÖÀ¸³ª ´ëºÎºÐÀÇ °æ¿ì ÀÛ¾÷ ¿µ¿ª¿¡ ±×¸®±â¸¦ ÇÒ ¼ö ÀÖ´Â Ä¿¸Õ DC°¡ ¸®ÅϵȴÙ. GetDC¿Í ReleaseDC ÇÔ¼ö·Î DC¸¦ ±¸ÇØ »ç¿ëÇÏ´Â ÀϹÝÀûÀÎ ÄÚµå´Â ´ÙÀ½°ú °°´Ù.

HDC hdc;
hdc=GetDC(hWnd);
°¢Á¾ Ãâ·Â¹®¿¡¼­ hdc¸¦ »ç¿ëÇÑ´Ù.
ReleaseDC(hWnd, hdc);

GetDC ÇÔ¼ö·Î DCÇÚµéÀ» ±¸ÇØ GDI ÇÔ¼ö È£Ãâ¿¡ »ç¿ëÇÏ¸ç »ç¿ëÀÌ ³¡³­ DC´Â ReleaseDC ÇÔ¼ö·Î ¹Ýµå½Ã ÇØÁ¦ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ´Ü Ŭ·¡½º DC³ª ÇÁ¶óÀ̺ñÆ® DCÀÎ °æ¿ì´Â ÇØÁ¦¸¦ ÇØ ÁÖÁö ¾Ê¾Æµµ µÈ´Ù. GetDC ÇÔ¼ö·Î ¾òÀº DCÇÚµéÀº ÇÑ ½º·¹µå ³»¿¡¼­¸¸ »ç¿ëÇØ¾ß Çϸç 95/98¿¡¼­ ½º·¹µå´ç ÃÖ´ë 5°³±îÁöÀÇ DC¸¦ µ¿½Ã¿¡ ¿­ ¼ö ÀÖ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ¸¶¿ì½º ¿ÞÂÊÀ» ¹öÆ°À» ´©¸¦ ¶§¸¶´Ù Ŭ¸¯ÇÑ À§Ä¡¿¡ "Click"¹®ÀÚ¿­À» Ãâ·ÂÇÑ´Ù. WM_PAINT¿ÜÀÇ ¸Þ½ÃÁö ·çƾ¿¡¼­ DCÇÚµéÀ» ±¸ÇØ¾ß ÇϹǷΠGetDC ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© DC¸¦ ±¸ÇÏ¸ç »ç¿ëÇÏ°í ³­ ÈÄ¿¡ ReleaseDC ÇÔ¼ö·Î DC¸¦ ÇØÁ¦ÇÏ¿´´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;

	switch(iMessage) {
	case WM_LBUTTONDOWN:
		hdc=GetDC(hWnd);
		TextOut(hdc,LOWORD(lParam),HIWORD(lParam),"Click",5);
		ReleaseDC(hWnd,hdc);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

Ãâ·Â °á°ú´Â ´ÙÀ½°ú °°´Ù. WM_PAINT¿¡¼­ ±×¸®±â¸¦ ÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î ÀÌ Ãâ·ÂÀº ¾ðÁ¦µçÁö Áö¿öÁú ¼ö ÀÖ´Ù.

Âü°íÇÔ¼ö ReleaseDC
Ç÷¿Æû 95ÀÌ»ó
ÂüÁ¶ 3Àå ÂüÁ¶

written by http://www.winapi.co.kr