¾Õ¿¡¼ ¸¸µç ¿¹Á¦´Â °ú¿¬ ÀÛ¾÷ ¿µ¿ª Áß¾Ó¿¡ ¹®ÀÚ¿À» Ãâ·ÂÇϱâ´Â ÇÏ¿´´Ù. À©µµ¿ì°¡ ¸¸µé¾îÁú ¶§ ÀÛ¾÷ ¿µ¿ª ÁÂÇ¥¸¦ ±¸ÇØ ³õ°í ±×¸± ¶§ ÀÌ ÁÂÇ¥¸¦ ±âÁØÀ¸·Î Áß¾Ó ÁÂÇ¥¸¦ °è»êÇϱ⠶§¹®ÀÌ´Ù. ±×·±µ¥ ÀÏ´Ü Ãâ·ÂµÈ À©µµ¿ìÀÇ Å©±â¸¦ º¯°æÇϸé ÀÛ¾÷ ¿µ¿ªÀÇ Å©±â°¡ ´Þ¶óÁ® ´õ ÀÌ»ó ¹®ÀÚ¿Àº ÀÛ¾÷ ¿µ¿ªÀÇ Áß¾Ó¿¡ ÀÖÁö ¾Ê°Ô µÈ´Ù. ¹®ÀÚ¿À» °è¼Ó ÀÛ¾÷ ¿µ¿ª Áß¾Ó¿¡ µÎ°í ½ÍÀ¸¸é À©µµ¿ìÀÇ Å©±â°¡ º¯°æµÉ ¶§¸¶´Ù ´Ù½Ã Ãâ·ÂÇØ ÁÖ¾î¾ß Çϴµ¥ À̶§ »ç¿ëµÇ´Â ¸Þ½ÃÁö°¡ WM_SIZE ¸Þ½ÃÁöÀÌ´Ù. ÀÌ ¸Þ½ÃÁö´Â À©µµ¿ìÀÇ Å©±â°¡ º¯°æµÇ¾úÀ» ¶§ º¸³»Áø´Ù. À̶§ lParamÀÇ ÇÏÀ§ ¿öµå¿¡´Â º¯°æµÈ ÈÄÀÇ À©µµ¿ì ÆøÀÌ, »óÀ§ ¿öµå¿¡¼´Â ³ôÀÌ°¡ Àü´ÞµÇ¸ç wParam¿¡´Â ÀÌ ¸Þ½ÃÁö°¡ ¹ß»ýÇÑ ÀÌÀ¯¸¦ ³ªÅ¸³»´Â Ç÷¹±×°¡ Àü´ÞµÈ´Ù.
ÀϹÝÀûÀ¸·Î ÀÌ Ç÷¹±×´Â Àß »ç¿ëµÇÁö ¾Ê´Â´Ù. WM_SIZE ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ¿© À©µµ¿ì Å©±â°¡ º¯°æµÉ ¶§¸¶´Ù ¹®ÀÚ¿ À§Ä¡¸¦ ¼öÁ¤Çϵµ·Ï WndProcÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇØ º¸ÀÚ. LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; static RECT rt; switch(iMessage) { case WM_PAINT: hdc=BeginPaint(hWnd, &ps); SetTextAlign(hdc,TA_CENTER); TextOut(hdc,rt.right/2, rt.bottom/2, "Center String",13); EndPaint(hWnd, &ps); return 0; case WM_SIZE: GetClientRect(hWnd, &rt); InvalidateRect(hWnd, NULL, TRUE); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } WM_CREATE ´ë½Å WM_SIZE¿¡¼ À©µµ¿ì Å©±â°¡ º¯°æµÉ ¶§¸¶´Ù ÀÛ¾÷ ¿µ¿ªÀÇ Å©±â¸¦ ´Ù½Ã °è»êÇÏ°í ȸéÀ» ´Ù½Ã ±×¸®¹Ç·Î ¹®ÀÚ¿Àº À©µµ¿ìÀÇ Å©±â¿¡ »ó°ü¾øÀÌ Ç×»ó °°Àº À§Ä¡¿¡ ÀÖ°Ô µÈ´Ù. WM_SIZE¿¡¼ GetClientRect ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÀÛ¾÷ ¿µ¿ªÀÇ Å©±â¸¦ ´Ù½Ã Á¶»çÇϴµ¥ lParamÀ¸·Îµµ ÀÛ¾÷ ¿µ¿ª Å©±â°¡ Àü´ÞµÇ¹Ç·Î ´ÙÀ½°ú °°ÀÌ ¾µ ¼öµµ ÀÖ´Ù. case WM_SIZE: rt.right=LOWORD(lParam); rt.bottom=HIWORD(lParam); InvalidateRect(hWnd, NULL, TRUE); return 0; WM_SIZE ¸Þ½ÃÁö´Â À©µµ¿ì Å©±â¿¡ »ó°ü¾øÀÌ ÀÏÁ¤ÇÑ ·¹À̾ƿôÀ» À¯ÁöÇϱâ À§ÇØ ºó¹øÇÏ°Ô »ç¿ëµÈ´Ù. |