MoveWindow

¿øÇü

BOOL MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint);

Àμö

¢º hWnd : À̵¿ ´ë»ó À©µµ¿ìÀÇ ÇÚµé

¢º X,Y : À̵¿ÇÒ Á»ó´Ü ÁÂÇ¥¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ÁÂÇ¥´Â Â÷Àϵå À©µµ¿ìÀÏ °æ¿ì ºÎ¸ð À©µµ¿ìÀÇ ÀÛ¾÷¿µ¿ª ¿øÁ¡À» ±âÁØÀ¸·Î ÇÑ ÁÂÇ¥À̸ç ÃÖ»óÀ§ À©µµ¿ìÀÇ °æ¿ì È­¸é ¿øÁ¡À» ±âÁØÀ¸·Î ÇÑ ÁÂÇ¥ÀÌ´Ù. ÁÂÇ¥ÀÇ ´ÜÀ§´Â Çȼ¿ÀÌ´Ù.

¢º nWidth, nHeight : À©µµ¿ìÀÇ Æø°ú ³ôÀ̸¦ ÁöÁ¤ÇÑ´Ù. ´ÜÀ§´Â Çȼ¿ÀÌ´Ù.

¢º bRepaint : À̵¿ ÈÄ¿¡ À©µµ¿ì¸¦ ´Ù½Ã ±×¸± °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ Àμö°¡ TRUEÀ̸é À©µµ¿ì¸¦ À̵¿ÇÑ ÈÄ WM_PAINT ¸Þ½ÃÁö¸¦ º¸³» À©µµ¿ì¸¦ ´Ù½Ã ±×¸®µµ·Ï ÇÑ´Ù. À̶§ ´Ù½Ã ±×·ÁÁö´Â ¿µ¿ªÀº ÀÛ¾÷¿µ¿ª, ºñÀÛ¾÷¿µ¿ªÀº ¹°·ÐÀÌ°í À©µµ¿ì À̵¿ ÈÄ¿¡ ´Ù½Ã µå·¯³ª´Â ºÎºÐ±îÁö Æ÷ÇԵȴÙ.

¸®ÅÏ

¼º°øÇϸé 0ÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÏ¸ç ¿¡·¯ ¹ß»ý½Ã 0À» ¸®ÅÏÇÑ´Ù.

¼³¸í

À©µµ¿ìÀÇ À§Ä¡¿Í Å©±â¸¦ º¯°æÇÏ´Â °¡Àå ÀϹÝÀûÀÎ ÇÔ¼öÀÌ´Ù. X,Y Àμö·Î À©µµ¿ìÀÇ À§Ä¡¸¦ ÁöÁ¤Çϸç nWidth, nHeight Àμö·Î À©µµ¿ìÀÇ Æø°ú ³ôÀ̸¦ ÁöÁ¤ÇϹǷΠÀÌ ÇÔ¼ö·Î À§Ä¡¿Í Å©±â¸¦ ÇѲ¨¹ø¿¡ º¯°æÇÒ ¼ö ÀÖ´Ù. ´Ü À§Ä¡¸¸ º¯°æÇϰųª Å©±â¸¸ º¯°æÇÏ°íÀÚ ÇÒ °æ¿ì´Â GetWindowRect µîÀÇ ÇÔ¼ö·Î ¿µ¿ªÀ» ¸ÕÀú ±¸ÇÑ ÈÄ ¿øÇÏ´Â °ª¸¸ º¯°æÇϰųª ¾Æ´Ï¸é SetWindowPos ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

ÀÌ ÇÔ¼ö´Â ÀϹÝÀûÀ¸·Î ºÎ¸ð À©µµ¿ì³»¿¡¼­ Â÷Àϵå ÄÁÆ®·ÑÀ» Á¤·ÄÇϱâ À§ÇÑ ¿ëµµ·Î ¸¹ÀÌ »ç¿ëÇϸç ÃÖ»óÀ§ À©µµ¿ìÀÇ Å©±â³ª À§Ä¡¸¦ º¯°æÇÒ ¶§´Â ÀÌ ÇÔ¼ö ´ë½Å SetWindowPos ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇÏ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ºÎ¸ð À©µµ¿ìÀÇ ÀÛ¾÷¿ª¿¡ ¹öÆ°, ¿¡µðÆ®, ¸®½ºÆ® ¹Ú½º¸¦ °¢°¢ ¹èÄ¡ÇÏ°í ÀÌ ÄÁÆ®·ÑµéÀ» ÀÛ¾÷¿µ¿ªÀÇ Æ¯Á¤ÇÑ À§Ä¡¿¡ Á¤·ÄÇÏ´Â ¿¹¸¦ º¸¿©ÁØ´Ù.

HWND hEdit,hList,hBtn;
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	switch(iMessage) {
	case WM_CREATE:
		hList=CreateWindow("listbox",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER |
			LBS_NOINTEGRALHEIGHT,0,0,0,0,hWnd,(HMENU)0,g_hInst,NULL);
		hEdit=CreateWindow("edit",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER |
			ES_MULTILINE,0,0,0,0,hWnd,(HMENU)1,g_hInst,NULL);
		hBtn=CreateWindow("button","¹öÆ°ÀÌ´Ù",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
			0,0,0,0,hWnd,(HMENU)2,g_hInst,NULL);
		SendMessage(hList,LB_ADDSTRING,0,(LPARAM)"¸®½ºÆ®¹Ú½º");
		SetWindowText(hEdit,"¿ä°Ç ¿¡µðÆ® ¹Ú½ºÀÔ´Ï´Ù");
		MoveWindow(hWnd,100,100,400,300,FALSE);
		return 0;
	case WM_SIZE:
		MoveWindow(hList,0,0,200,HIWORD(lParam)-50,TRUE);
		MoveWindow(hEdit,200,0,LOWORD(lParam)-200,HIWORD(lParam)-50,TRUE);
		MoveWindow(hBtn,0,HIWORD(lParam)-50,LOWORD(lParam),50,TRUE);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

MoveWindow ÇÔ¼ö°¡ 4¹ø »ç¿ëµÇ¾ú´Ù. WM_CREATE¿¡¼­ »ç¿ëÇÑ MoveWindow ÇÔ¼ö´Â ¸ÞÀÎ À©µµ¿ìÀÇ À§Ä¡¿Í Å©±â¸¦ °­Á¦·Î Á¶ÀåÇÏ´Â ¿ëµµ·Î »ç¿ëµÇ¾úÀ¸¸ç ÀÌ °æ¿ì À©µµ¿ì°¡ ¾ÆÁ÷ º¸À̱â ÀüÀ̹ǷΠbRepaint Àμö´Â FALSE·Î ÁöÁ¤ÇÏ´Â °ÍÀÌ ÁÁ´Ù. WM_SIZE¿¡¼­ °¢ Â÷Àϵå ÄÁÆ®·Ñ¿¡ ´ëÇØ MoveWindow¸¦ È£ÃâÇÏ¿© Â÷Àϵå ÄÁÆ®·ÑÀ» Àç¹èÄ¡Çϵµ·Ï Çß´Ù. Àç¹èÄ¡ÀÇ ±âÁØÀº ÇöÀç ºÎ¸ð À©µµ¿ìÀÇ ÀÛ¾÷¿µ¿ª Æø°ú ³ôÀÌÀε¥ ÀÌ °ªÀº WM_SIZEÀÇ lParamÀÇ ÇÏÀ§, »óÀ§ ¿öµå·Î °¢°¢ Àü´ÞµÈ´Ù.

¸®½ºÆ® ¹Ú½º´Â ÀÛ¾÷ ¿µ¿ªÀÇ ¿øÁ¡¿¡¼­ºÎÅÍ ÆøÀº 200Çȼ¿À» °¡Áö¸ç ³ôÀÌ´Â ÀÛ¾÷¿µ¿ª ³ôÀÌ¿¡¼­ ¹öÆ°ÀÇ Æø 50Çȼ¿À» »«¸¸Å­À» ÁÖ¾ú´Ù. ¿¡µðÆ® ÄÁÆ®·ÑÀº ¸®½ºÆ® ¹Ú½ºÀÇ ¹Ù·Î ¿À¸¥ÂÊ¿¡ ¹èÄ¡µÇ¸ç ÆøÀº ¸®½ºÆ® ¹Ú½ºÀÇ ÆøÀÎ 200À» »«¸¸Å­, ±×¸®°í ³ôÀÌ´Â ¹öÆ°ÀÇ ³ôÀÌ 50À» »«¸¸Å­ÀÌ´Ù. ¹öÆ°Àº µÎ ÄÁÆ®·ÑÀÌ Â÷ÁöÇÑ ³ª¸ÓÁö ¿µ¿ªÀ» ä¿î´Ù. À̶§ °¢ ÄÁÆ®·ÑÀº º¯°æµÈ À§Ä¡¿¡ ´Ù½Ã ±×·ÁÁ®¾ß ÇϹǷΠbRepaint Àμö´Â TRUE·Î ÁÖ¾î¾ß ÇÑ´Ù. Âü°í·Î ÀÌ·± ½ÄÀ¸·Î Â÷Àϵ尡 ÀÛ¾÷¿µ¿ªÀ» ä¿ì´Â °æ¿ì ¸ÞÀÎ À©µµ¿ì´Â ¹Ýµå½Ã WS_CLIPCHILDREN ½ºÅ¸ÀÏÀ» °¡Á®¾ß ±ô¹ÚÀÓÀ» ÁÙÀÏ ¼ö ÀÖ´Ù.

Âü°íÇÔ¼ö

SetWindowPos : ÀÌ ÇÔ¼ö¿Í À¯»çÇ쵂 ¿©·¯ °¡Áö ¿É¼ÇÀ» ÁÙ ¼ö ÀÖ´Ù.

GetWindowRect : À©µµ¿ìÀÇ ÇöÀç ¿µ¿ªÀ» Á¶»çÇÑ´Ù.

Ç÷¿Æû

95ÀÌ»ó

º»¹®ÂüÁ¶

 


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