WM_NCHITTEST

Àμö

wParam : »ç¿ëµÇÁö ¾Ê´Â´Ù.

lParam : È­¸é»óÀÇ Ä¿¼­ ÁÂÇ¥°¡ Àü´ÞµÈ´Ù. ÇÏÀ§ ¿öµå¿¡ xÁÂÇ¥, »óÀ§ ¿öµå¿¡ yÁÂÇ¥°¡ Àü´ÞµÈ´Ù.

¼³¸í

¸¶¿ì½º¸¦ À̵¿Çϰųª ¹öÆ°À» ´©¸£°Å³ª ³õÀ» ¶§¸¶´Ù ÀÌ ¸Þ½ÃÁö°¡ ¹ß»ýÇÑ´Ù. ÀÌ ¸Þ½ÃÁö´Â Ä¿¼­°¡ ÀÖ´Â À§Ä¡°¡ À©µµ¿ìÀÇ ¾îµðÂëÀÎÁö¸¦ À©µµ¿ì¿¡°Ô Áú¹®À» ÇÏ¸ç ¿î¿µÃ¼Á¦´Â ÀÌ ¸Þ½ÃÁöÀÇ ¸®ÅÏ°ª¿¡ µû¶ó ¸¶¿ì½º¸¦ ó¸®ÇÑ´Ù. ¿¹¸¦ µé¾î ÀÌ ¸Þ½ÃÁö°¡ HTBOTTOMÀ» ¸®ÅÏÇÏ¸é ¾Æ·¡ÂÊ °æ°è¼±¿¡ Ä¿¼­°¡ ÀÖ´Â °ÍÀ¸·Î ÆÇ´ÜÇϸç ÀÌ »óÅ¿¡¼­ ¸¶¿ì½º¸¦ µå·¡±×Çϸé À©µµ¿ìÀÇ ¼öÁ÷ Å©±â¸¦ º¯°æÇÑ´Ù.

DefWindowProcÀº Ä¿¼­°¡ ÀÖ´Â À§Ä¡¸¦ Á¤È®ÇÏ°Ô °è»êÇÏ¿© ÀûÀýÇÑ À§Ä¡°ªÀ» ¸®ÅÏÇØ ÁØ´Ù. ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ¿© ¸®ÅÏ°ªÀ» Á¶ÀÛÇÏ¸é ¿î¿µÃ¼Á¦ÀÇ Ä¿¼­ °ü¸® µ¿ÀÛÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÀÛ¾÷ ¿µ¿ª¿¡ Ä¿¼­°¡ ÀÖÀ» ¶§ HTCLIENT ´ë½Å HTCAPTIONÀ» ¸®ÅÏÇØ ÁÖ¸é ÀÛ¾÷ ¿µ¿ªÀ» µå·¡±×ÇÏ¿© À©µµ¿ìÀÇ À§Ä¡¸¦ º¯°æÇÑ´Ù. ÀÌ·± Á¶ÀÛÀ» ÇÏ·Á¸é ÇöÀç À§Ä¡¸¦ ¸ÕÀú Á¶»çÇØ¾ß ÇϹǷΠDefWindowProcÀ» ¸ÕÀú È£ÃâÇÑ ÈÄ ÇöÀç Ä¿¼­ À§Ä¡¸¦ ÆľÇÇÏ°í ±× °á°ú·ÎºÎÅÍ ¸®ÅÏ°ªÀ» Á¶ÀÛÇØ¾ß ÇÑ´Ù.

¸®ÅÏ

Ä¿¼­°¡ À§Ä¡ÇÑ °÷ÀÌ ¾îµðÂëÀÎÁö¸¦ ³ªÅ¸³»´Â ´ÙÀ½ °ª Áß Çϳª¸¦ ¸®ÅÏÇÑ´Ù.

°ª

¼³¸í

HTBORDER

Å©±â Á¶Á¤ÀÌ ºÒ°¡´ÉÇÑ °æ°è¼±

HTBOTTOM

¾Æ·¡ÂÊ °æ°è¼±. ÀÌ ºÎºÐÀ» µå·¡±×ÇÏ¿© ¼öÁ÷ Å©±â¸¦ º¯°æÇÒ ¼ö ÀÖ´Ù.

HTOTTOMLEFT

¾Æ·¡ ¿ÞÂÊ °æ°è¼±

HTBOTTOMRIGHT

¾Æ·¡ ¿À¸¥ÂÊ °æ°è¼±

HTCAPTION ŸÀÌƲ ¹Ù
HTCLIENT ÀÛ¾÷ ¿µ¿ª
HTCLOSE ´Ý±â ¹öÆ°
HTERROR È­¸é ¹è°æ ¶Ç´Â À©µµ¿ì°£ÀÇ ±¸ºÐ¼±¿¡ ÀÖ´Ù. ÀÌ ºÎºÐ¿¡ ÀÖÀ¸¸é DefWindowProcÀº ºñÇÁÀ½À» ³½´Ù.
HTHELP µµ¿ò¸» ¹öÆ°
HTHSCROLL ¼öÆò ½ºÅ©·Ñ ¹Ù
HTLEFT ¿ÞÂÊ °æ°è¼±
HTMENU ¸Þ´º
HTMAXBUTTON
=HTZOOM
ÃÖ´ëÈ­ ¹öÆ°

HTMINBUTTON
=HTREDUCE

ÃÖ¼ÒÈ­ ¹öÆ°
HTNOWHERE È­¸é ¹è°æ ¶Ç´Â À©µµ¿ì°£ÀÇ ±¸ºÐ¼±¿¡ ÀÖ´Ù.
HTRIGHT ¿À¸¥ÂÊ °æ°è¼±
HTSIZE
=HTGROWBOX
Å©±â Á¶Á¤ ¹Ú½º
HTSYSMENU ½Ã½ºÅÛ ¸Þ´º. ¶Ç´Â Â÷ÀϵåÀÇ ´Ý±â ¹öÆ°
HTTOP À§ÂÊ °æ°è¼±
HTTOPLEFT À§ ¿ÞÂÊ °æ°è¼±
HTTOPRIGHT À§ ¿À¸¥ÂÊ ¿©°è¼±
HTTRANSPARENT °°Àº ½º·¹µåÀÇ ´Ù¸¥ À©µµ¿ì¿¡ ÀÇÇØ °¡·ÁÁø ºÎºÐ.
HTVSCROLL ¼öÁ÷ ½ºÅ©·Ñ ¹Ù
¿¹Á¦

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ÀÌ ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ´Â °¡Àå ÀüÇüÀûÀÎ ¿¹Á¦ÀÌ´Ù. ÀÛ¾÷ ¿µ¿ªÀ» µå·¡±×ÇÏ¿© À©µµ¿ìÀÇ À§Ä¡¸¦ ¿Å±æ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	LRESULT hittest;
	TCHAR Mes[]="ÀÛ¾÷ ¿µ¿ªÀ» µå·¡±×ÇÏ¿© À§Ä¡¸¦ ¿Å±æ ¼ö ÀÖ´Ù";

	switch(iMessage) {
	case WM_NCHITTEST:
		hittest=DefWindowProc(hWnd,iMessage,wParam,lParam);
		if (hittest==HTCLIENT) {
			return HTCAPTION;
		} else {
			return hittest;
		}
	case WM_LBUTTONDOWN:
		MessageBox(hWnd,"¿ÞÂÊ ¸¶¿ì½º ¹öÆ° ´©¸§","¾Ë¸²",MB_OK);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		TextOut(hdc,10,10,Mes,lstrlen(Mes));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

DefWindowProcÀ¸·Î WM_NCHITTEST ¸Þ½ÃÁö¸¦ ¸ÕÀú º¸³» ÇöÀç Ä¿¼­°¡ ÀÖ´Â ¿µ¿ªÀÌ ¾îµðÀΰ¡¸¦ Á¶»çÇÑ´Ù. ¸¸¾à ÀÛ¾÷ ¿µ¿ª¿¡ Ä¿¼­°¡ ÀÖ´Ù¸é HTCAPTIONÀ» ¸®ÅÏÇÏ¿© ¸¶Ä¡ Ä¿¼­°¡ ŸÀÌƲ ¹Ù¿¡ ÀÖ´Â °Íó·³ ¼Ó¿© À©µµ¿ì À§Ä¡¸¦ ¿Å±âµµ·Ï ÇÑ´Ù. ±×·¯³ª ÀÌ·¸°Ô µÇ¸é ÀÛ¾÷ ¿µ¿ª¿¡¼­ ¸¶¿ì½º Ŭ¸¯ ¸Þ½ÃÁö¸¦ ¹ÞÀ» ¼ö ¾ø°Ô µÈ´Ù. ¿Ö³ÄÇϸé WM_LBUTTONDOWN ¸Þ½ÃÁö´Â WM_NCHITTEST°¡ HTCLIENT¸¦ ¸®ÅÏÇÒ ¶§ »ý¼ºµÇ´Â ¸Þ½ÃÁöÀ̱⠶§¹®ÀÌ´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


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