SetCapture

¿øÇü

HWND SetCapture(HWND hWnd);

MFC ¿øÇü

CWnd* CWnd::SetCapture( );

Àμö

¢ºhWnd : ¸¶¿ì½º¸¦ ĸóÇÒ À©µµ¿ìÀÇ ÇÚµé

¸®ÅÏ

ÀÌÀü¿¡ ¸¶¿ì½º¸¦ ĸóÇÏ°í ÀÖ´ø À©µµ¿ìÀÇ ÇÚµéÀ» ¸®ÅÏÇÏµÇ Ä¸Ã³ÇÑ À©µµ¿ì°¡ ¾øÀ¸¸é NULLÀ» ¸®ÅÏÇÑ´Ù.

¼³¸í

¸¶¿ì½º ¹öÆ°ÀÇ ´©¸§, À̵¿, ¶À µîÀÇ ¸¶¿ì½º ¸Þ½ÃÁö´Â º¸Åë Ä¿¼­ ¹Ù·Î ¾Æ·¡ÂÊ¿¡ ÀÖ´Â À©µµ¿ì·Î Àü´ÞµÈ´Ù. ÀÌ´Â Áö±ØÈ÷ Á¤»óÀûÀÌ¸ç »ó½ÄÀûÀ̳ª °¡²û Ä¿¼­°¡ ¿µ¿ª¹ÛÀ» ¹þ¾î³ªµµ °è¼ÓÀûÀ¸·Î ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ¹Þ¾Æ¾ß ÇÏ´Â °æ¿ìµµ ÀÖ´Ù. ÀÌ·± °æ¿ì´Â ¸¶¿ì½º Ä¿¼­¸¦ ĸóÇØ¾ß ÇÑ´Ù. SetCapture ÇÔ¼ö´Â hWnd À©µµ¿ì°¡ ¸¶¿ì½º Ä¿¼­¸¦ ĸóÇϵµ·Ï Çϸç ÀÌ·¸°Ô µÇ¸é Ä¿¼­°¡ À©µµ¿ìÀÇ ¿µ¿ª¹ÛÀ» ¹þ¾î³ª´õ¶óµµ °è¼ÓÇؼ­ ¸¶¿ì½º ¸Þ½ÃÁö¸¦ º¸³»ÁØ´Ù. ÀÌ »óÅ´ ReleaseCapture ÇÔ¼ö·Î ĸó¸¦ Ç®±â Àü±îÁö °è¼ÓµÈ´Ù. ÁÖ·Î µå·¡±× µ¿ÀÛÀ» ÇÒ ¶§ ĸó°¡ ÇÊ¿äÇÏ´Ù.

ÇöÀç ½º·¹µå¿¡ ¼ÓÇÑ À©µµ¿ì¸¸ ĸó¸¦ ÇÒ ¼ö ÀÖÀ¸¸ç Çѹø¿¡ ÇϳªÀÇ À©µµ¿ì¸¸ ¸¶¿ì½º¸¦ ĸóÇÒ ¼ö ÀÖ´Ù. ¸¶¿ì½º¸¦ ĸóÇÑ À©µµ¿ì´Â ¸ðµç ¸¶¿ì½º ¸Þ½ÃÁö¸¦ Àü´Þ¹Þ´Âµ¥ ´Ü ¿¹¿ÜÀûÀ¸·Î ´Ù¸¥ ½º·¹µå¿¡ ¼ÓÇÑ À©µµ¿ì¸¦ ´©¸¦ °æ¿ì´Â ĸó ¿©ºÎ¿¡ »ó°ü¾øÀÌ Ä¿¼­ ¾Æ·¡ÂÊÀÇ À©µµ¿ì·Î ¸Þ½ÃÁö°¡ Àü´ÞµÇ¸ç ÀÌ °æ¿ì ÇØ´ç À©µµ¿ì´Â Æ÷±×¶ó¿îµå »óÅ°¡ µÈ´Ù. ¸¶¿ì½º ¹öÆ° ´©¸§Àº ÀÛ¾÷ÀÇ ÀüȯÀ» ÀǹÌÇϹǷΠĸó ¿©ºÎ¿¡ »ó°ü¾øÀÌ ÇØ´ç À©µµ¿ì·Î Àü´ÞµÈ´Ù. ±×·¯³ª º¸Åë ¸¶¿ì½º ¹öÆ°À» ´©¸¥ »óÅ¿¡¼­ Ä¿¼­¸¦ ĸóÇϱ⠶§¹®¿¡ ÀÌ·± °æ¿ì´Â ±ØÈ÷ µå¹°´Ù.

Æ÷±×¶ó¿îµå À©µµ¿ì°¡ ¸¶¿ì½º¸¦ ĸóÇÏ´Â °ÍÀÌ º¸ÅëÀÌÁö¸¸ ¹é±×¶ó¿îµå À©µµ¿ìµµ ¸¶¿ì½º¸¦ ĸóÇÒ ¼ö ÀÖ´Ù. ÀÌ °æ¿ì Ä¿¼­°¡ ¹é±×¶ó¿îµå À©µµ¿ìÀÇ º¸ÀÌ´Â ºÎºÐ¿¡ ÀÖÀ» ¶§¸¸ ¸¶¿ì½º ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù. ĸó »óÅ¿¡¼­´Â ¸Þ´ºÀÇ ÇÖÅ°, ¾×¼¿·¯·¹ÀÌÅÍ µîÀº µ¿ÀÛÇÏÁö ¾Ê´Â´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ¸¶¿ì½º°¡ À̵¿Çϴ´ë·Î ÀÚÀ¯ °î¼±À» ±×¸°´Ù.

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

	switch(iMessage) {
	case WM_LBUTTONDOWN:
		x=short(LOWORD(lParam));
		y=short(HIWORD(lParam));
		SetCapture(hWnd);
		return 0;
	case WM_MOUSEMOVE:
		if (GetCapture()==hWnd) {
			hdc=GetDC(hWnd);
			MoveToEx(hdc,x,y,NULL);
			x=short(LOWORD(lParam));
			y=short(HIWORD(lParam));
			LineTo(hdc,x,y);
			ReleaseDC(hWnd,hdc);
		}
		return 0;
	case WM_LBUTTONUP:
		ReleaseCapture();
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

¸¶¿ì½º ¹öÆ°À» ´©¸¥ »óÅ¿¡¼­ À̵¿ÇÏ¸é ¼±À» ¿¬°áÇÏ¿© °è¼Ó ±×¸®´Âµ¥ Ä¿¼­°¡ ÀÛ¾÷ ¿µ¿ª¹ÛÀ» ¹þ¾î³ª´õ¶óµµ ÁÂÇ¥ °»½ÅÀ» °è¼Ó ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ¹°·Ð ¿µ¿ª¹ÛÀ¸·Î ¼±ÀÌ ±×·ÁÁö´Â °ÍÀº ¾Æ´ÏÁö¸¸ ĸó¸¦ ÇÏÁö ¾ÊÀ¸¸é Ä¿¼­°¡ °©Àڱ⠿µ¿ª¾ÈÀ¸·Î µé¾î¿ÔÀ» ¶§ ¿µ¿ª¹ÛÀ¸·Î ³ª°£ ÁöÁ¡°ú ¼±ÀÌ ¿¬°áµÇ¾î ¿¬¼ÓÀûÀÎ ÀÚÀ¯ °î¼±À» ±×¸± ¼ö ¾ø´Ù. ¶ÇÇÑ Ä¿¼­¸¦ ĸóÇÏÁö ¾ÊÀº »óÅ¿¡¼­ ¿µ¿ª ¹Ù±ù¿¡¼­ ¹öÆ°À» ³õ¾ÒÀ» ¶§ ÀÌ À©µµ¿ì´Â ±×¸®±â°¡ ³¡³µ´Ù´Â »ç½ÇÀ» ¾Ë ¼ö ¾ø°Ô µÈ´Ù. ½ÇÇàÁßÀÇ ¸ð½ÀÀº ´ÙÀ½°ú °°´Ù.

¸¸¾à ĸó¸¦ ÇÏÁö ¾Ê°í Àü¿ª º¯¼ö·Î ±×¸®±â »óÅÂÀÎÁö¸¦ ÆÇ´ÜÇϵµ·Ï ÇÑ´Ù¸é ÀÛ¾÷ ¿µ¿ª ¹Ù±ùÀ¸·Î ¹þ¾î³¯ ¶§ÀÇ Ã³¸®¸¦ Á¦´ë·Î ÇÒ ¼ö°¡ ¾ø´Ù.

Âü°íÇÔ¼ö

ReleaseCapture, GetCapture

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


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