AdjustWindowRect

¿øÇü BOOL AdjustWindowRect(LPRECT lpRect, DWORD dwStyle, BOOL bMenu);
MFC ¿øÇü ÇØ´çÇÏ´Â ÇÔ¼ö°¡ ¾øÀ½
Àμö

¢ºlpRect:¿øÇÏ´Â ÀÛ¾÷ ¿µ¿ªÀÇ »ç°¢ Å©±â¸¦ Àü´ÞÇϸé ÀÌ Àμö·Î Á¶Á¤µÈ À©µµ¿ì Å©±â°¡ ¸®ÅϵȴÙ.

¢ºdwStyle:À©µµ¿ìÀÇ ½ºÅ¸ÀÏÀ» ÁöÁ¤ÇÑ´Ù. WS_OVERLAPPED ½ºÅ¸ÀÏÀº ÁöÁ¤ÇÒ ¼ö ¾ø´Ù.

¢ºbMenu:¸Þ´º°¡ ÀÖÀ¸¸é TRUE¸¦ Àü´ÞÇÏ°í ±×·¸Áö ¾ÊÀ¸¸é FALSE¸¦ Àü´ÞÇÑ´Ù.

¸®ÅÏ

¼º°øÇϸé nonzero¸®ÅÏ, ½ÇÆÐÇϸé 0 ¸®ÅÏ

¼³¸í

ÀÛ¾÷ ¿µ¿ªÀÇ Å©±â´Â À©µµ¿ì Å©±â¿¡¼­ ŸÀÌƲ ¹Ù¿Í °æ°è¼±, ¸Þ´º, ½ºÅ©·Ñ ¹Ù µîÀÇ ¿µ¿ªÀ» Á¦¿ÜÇÑ ¿µ¿ªÀÌ´Ù. ÀϹÝÀûÀ¸·Î MoveWindow, SetWindorPos µîÀÇ ÇÔ¼ö·Î À©µµ¿ì Å©±â´Â ¿øÇϴ´ë·Î ¹Ù²Ü ¼ö ÀÖÁö¸¸ ÀÛ¾÷ ¿µ¿ªÀÇ Å©±â¸¦ ¿øÇϴ´ë·Î ¼³Á¤ÇÏ´Â ¹æ¹ýÀº ¾ø´Ù. ÀÛ¾÷ ¿µ¿ªÀ» ƯÁ¤ÇÑ Å©±â´ë·Î ¼³Á¤ÇÏ·Á¸é ÀÌ ÇÔ¼ö·Î ¿øÇÏ´Â À©µµ¿ì Å©±â¸¦ ¸ÕÀú °è»êÇÏ°í MoveWindow µîÀÇ ÇÔ¼ö·Î À©µµ¿ì Å©±â¸¦ º¯°æÇØ¾ß ÇÑ´Ù.

ÀÌ ÇÔ¼ö´Â À©µµ¿ìÀÇ ½ºÅ¸ÀÏ(ŸÀÌƲ ¹ÙÀÇ À¯¹«, ŸÀÌƲ ¹ÙÀÇ ³ôÀÌ, °æ°è¼±ÀÇ µÎ²²)¿Í ¸Þ´ºÀÇ Á¸Àç ¿©ºÎ µîÀ» °í·ÁÇÏ¿© ÀÛ¾÷ ¿µ¿ªÀÇ Å©±â°¡ lpRect°¡ µÉ ¼ö ÀÖ´Â À©µµ¿ì Å©±â¸¦ ±¸ÇØ lpRect·Î ¸®ÅÏÇØ ÁØ´Ù. ´Ü ÀÌ ÇÔ¼ö´Â ¸Þ´º ¹Ù°¡ µÎ ÁÙ·Î Ãâ·ÂµÇ¾î ÀÖ´Â °æ¿ì¿Í ½ºÅ©·Ñ ¹ÙÀÇ Á¸Àç¿¡ ´ëÇؼ­´Â Á¤È®ÇÑ °è»êÀ» ÇØ ÁÖÁö ¾Ê´Â´Ù. ¸¸¾à ½ºÅ©·Ñ ¹Ù¸¦ °¡Áö°í ÀÖ´Ù¸é ±¸ÇØÁø ¿µ¿ª Å©±â¿¡ ½ºÅ©·Ñ¹ÙÀÇ ³ôÀÌ¿Í ÆøÀ» ´õÇØ ÁÖ¾î¾ß ÇÑ´Ù.

¿¹Á¦1

´ÙÀ½ ¿¹Á¦´Â ÀÛ¾÷ ¿µ¿ªÀÇ Å©±â¸¦ 300*200À¸·Î ¼³Á¤ÇÏ°í Ÿ¿øÀ» ±×¸°´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	RECT rt={0,0,300,200};
	switch(iMessage) {
	case WM_CREATE:
		AdjustWindowRect(&rt,WS_OVERLAPPEDWINDOW,FALSE);
		MoveWindow(hWnd,100,100,rt.right-rt.left,rt.bottom-rt.top,FALSE);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		Ellipse(hdc,0,0,300,200);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

WM_CREATE¿¡¼­ AdjustWindowRect ÇÔ¼ö¸¦ È£ÃâÇ쵂 {0,0,300,200}À¸·Î ÃʱâÈ­µÈ rt¸¦ ù¹ø° Àμö·Î Àü´ÞÇÏ¿´À¸¸ç ÀÌ À©µµ¿ì´Â ¸Þ´º°¡ ¾ø°í WS_OVERLAPPEDWINDOW ½ºÅ¸ÀÏ·Î »ý¼ºµÇ¾úÀ½À» ¾Ë·Á ÁÖ¾ú´Ù. AdjustWindowRect ÇÔ¼ö´Â À©µµ¿ì ½ºÅ¸ÀÏ°ú ÇöÀç À©µµ¿ìÀÇ ¸ÞÆ®¸¯½º °ªÀ» ÂüÁ¶ÇÏ¿© ÀÛ¾÷ ¿µ¿ªÀÌ 300*200ÀÇ Å©±â°¡ µÇµµ·Ï À©µµ¿ì ¿µ¿ªÀ» °è»êÇؼ­ rt¿¡ ±× ¿µ¿ªÀ» ¸®ÅÏÇØ ÁØ´Ù. MoveWindow ÇÔ¼ö·Î rtÀÇ Æø°ú ³ôÀ̸¦ ÃëÇØ À©µµ¿ì Å©±â¸¦ º¯°æÇϸé ÀÛ¾÷ ¿µ¿ªÀÇ Å©±â°¡ Á¤È®ÇÏ°Ô 300,200À¸·Î ¼³Á¤µÈ´Ù. ´ÙÀ½Àº ½ÇÇà °á°úÀÌ´Ù.

ÀÛ¾÷ ¿µ¿ªÀÇ Å©±â¸¦ È®ÀÎÇϱâ À§ÇØ 300*200ÀÇ Å©±â·Î Ÿ¿øÀ» ±×·Á º¸¾Ò´Ù.

Âü°íÇÔ¼ö

AdjustWindowRectEx : È®Àå ½ºÅ¸ÀϱîÁö °í·ÁÇÏ¿© À©µµ¿ì Å©±â¸¦ °è»êÇØ ÁØ´Ù.

CreateWindow, MoveWindow

Ç÷¿Æû 95ÀÌ»ó
ÂüÁ¶ 10Àå ÂüÁ¶

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