Áú¹®°ú ´äº¯

SetWindowPos¿Í °úÁ¦ Áú¹®µå¸³´Ï´Ù. ³¯Â¥:2021-2-4 11:30:59 Á¶È¸¼ö:58
ÀÛ¼ºÀÚ : Stranger
Æ÷ÀÎÆ® : 21
°¡ÀÔÀÏ : 2021-02-01 07:02:45
¹æ¹®È½¼ö : 7
±Û 3°³, ´ñ±Û 4°³
¼Ò°³ :
ÀÛ¼º±Û º¸±â
ÂÊÁö º¸³»±â
SetWindowPos´Â Ŭ¶óÀÌ¾ðÆ® ÁÂÇ¥¸¦ »ç¿ëÇϴ°ɷΠ¾Ë°í ÀÖ½À´Ï´Ù.
±×·¡¼­ 
    case WM_LBUTTONDOWN:
        SetWindowPos(hBtn, NULL, LOWORD(lParam), HIWORD(lParam), 0, 0, SWP_NOSIZE | SWP_NOZORDER);
        return 0;
ÀÌ¿Í °°ÀÌ ÀÛ¼ºÇصµ ¸¶¿ì½º·Î Ŭ¸¯ÇÑ À§Ä¡·Î À©µµ¿ìÀÇ ÁÂÇ¥°¡ º¯°æµË´Ï´Ù.
±×·±µ¥, À©µµ¿ì¸¦ ºÎ¸ðÀ©µµ¿ìÀÇ Áß½ÉÀ¸·Î À̵¿½ÃŰ´Â °úÁ¦¸¦ Ǫ´Â Áß¿¡ ÀÌ¿Í °°Àº ÇÔ¼ö¸¦ ÀÛ¼ºÇߴµ¥
void MoveToParentCenter(HWND hWnd)
{
    HWND hWndParent = GetParent(hWnd);
    WINDOWPLACEMENT WndPl;
    WndPl.length = sizeof(WINDOWPLACEMENT);
    GetWindowPlacement(hWndParent, &WndPl);
    if (WndPl.showCmd == SW_MINIMIZE) {
        ShowWindow(hWndMain, SW_SHOWNORMAL);
    }
    GetClientRect(hWndParent, &WndPl.rcNormalPosition);  //GetWindowPlacement ÇÔ¼ö°¡ È­¸éÁÂÇ¥¸¦ Á༭ ´Ù½Ã ÁÂÇ¥ ±¸ÇÔ.
    RECT hrt; GetClientRect(hWnd, &hrt);
    
    hrt.left = WndPl.rcNormalPosition.right / 2 - hrt.right / 2;
    hrt.top = WndPl.rcNormalPosition.bottom / 2 - hrt.bottom / 2;
    SetWindowPos(hWnd, hWndParent, hrt.left, hrt.top, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
}
Á¤»óÀûÀ¸·Î µ¿ÀÛÇÏÁö ¾Ê°í ¿ÀÈ÷·Á À̵¿½Ãų À©µµ¿ì°¡ ¸ÞÀÎ À©µµ¿ìÀÇ È­¸é ¹ÛÀ¸·Î ³ª°¡´Â °æ¿ì°¡ ¹ß»ýÇß½À´Ï´Ù.
°á±¹ 2°¡Áö Àǹ®À» °®°Ô µÆ´Âµ¥ ´äº¯ÇØÁÖ¼ÌÀ¸¸é ÇÕ´Ï´Ù.

1. GetWindowPlacement ÇÔ¼ö¸¦ »ç¿ëÇϸé ÀÛ¾÷¿µ¿ª(Client) ÁÂÇ¥¸¦ ±¸ÇÒ ¼ö ÀÖ´Ù°í Çߴµ¥ ¿Ö È­¸é¿µ¿ª(Window) ÁÂÇ¥¸¦ ¾ò°Ô µÈ°Ç°¡¿ä?

2.SetWindowPos´Â ÀÛ¾÷¿µ¿ª ÁÂÇ¥¸¦ »ç¿ëÇÑ´Ù°í ¹è¿ü½À´Ï´Ù. ±×·¸´Ù¸é À̵¿½Ãų À©µµ¿ì¿Í ÀÛ¾÷¿µ¿ª ÁÂÇ¥¸¸À» Áִµ¥ ÀÌ ÀÛ¾÷¿µ¿ª ÁÂÇ¥´Â ¾î´À À©µµ¿ì¸¦ ±âÁØÀ¸·Î ÇÑ °ÍÀԴϱî? À̵¿½Ãų À©µµ¿ìÀÇ ºÎ¸ðÀ©µµ¿ìÀΰ¡¿ä?

ÀÌ µÎ °¡Áö Àǹ®¸¸ ÇØ°áµÇ¸é °úÁ¦¸¦ ¿øÈ°ÇÏ°Ô ¼öÇàÇÒ ¼ö ÀÖÀ» °Í °°Àºµ¥, Á¦°¡ ´õ ¾Ë¾Æ¾ß ÇÏ´Â°Ô ÀÖÀ¸¸é ¾Ë·ÁÁÖ½Ã¸é °¨»çÇϰڽÀ´Ï´Ù.
Âü°í·Î Á¦°¡ ¸¸µç Äڵ忡¼­ SetWindowPos ÇÔ¼ö¸¦ ½ÇÇàÇßÀ» ¶§ ¸Å°³º¯¼ö·Î ÁØ x,y°¡ È­¸éÁÂǥó·³ ¾²¿´½À´Ï´Ù. À̰͵µ ¿Ö ±×·±Áö ¸ð¸£°Ú½À´Ï´Ù.

¸ñ·Ïº¸±â »èÁ¦ ¼öÁ¤ ½Å°í ½ºÅ©·¦

ÀÛ°¡K 2¿ù4ÀÏ 11:21:10  

1¹ø ´äº¯Àº ¾Õ Áú¹®¿¡¼­ ¸»¾¸ µå·È´Ù½ÃÇÇ ¿öÅ©¿¡¸®¾î ÁÂÇ¥ÀÔ´Ï´Ù. È­¸é ÁÂÇ¥¿Í À¯»çÇÏ´Ù°í º¸½Ã¸é µË´Ï´Ù.
SetWindowPos°¡ »ç¿ëÇÏ´Â ÁÂÇ¥´Â À©µµ¿ì ¼Ó¼º¿¡ µû¶ó ´Ù¸¨´Ï´Ù. Â÷Àϵå¶ó¸é ´ç¿¬È÷ ºÎ¸ð À©µµ¿ìÀÇ ÀÛ¾÷¿µ¿ª ±âÁØ ÁÂÇ¥°¡ µÇ°ÚÁö¸¸ ¿À¹ö·¦µå À©µµ¿ì¶ó¸é ±× ºÎ¸ð°¡ µ¥½ºÅ©Å¾À̹ǷΠȭ¸é ÁÂÇ¥°¡ µË´Ï´Ù. ÀÛ¼ºÇϽŠÄڵ忡¼­ hWnd°¡ ¿À¹ö·¦µå, Áï ¸ÞÀÎ À©µµ¿ìÀ̹ǷΠÀ̶§ ÁöÁ¤ÇÑ ÁÂÇ¥´Â È­¸é ÁÂÇ¥·Î ÇØ¼®µÉ °Å °°½À´Ï´Ù.
·¹ÆÛ·±½º¿¡¼­ API ÇÔ¼ö¸¦ ã¾Æ º¸½Ã¸é ÇØ´ç ÁÂÇ¥ÀÇ Àǹ̰¡ ¹«¾ùÀÎÁö, ¾î¶² °æ¿ì¿¡ ¾î¶² ÁÂÇ¥ÀÎÁö ´ëºÎºÐÀÇ °æ¿ì ¼³¸íÀÌ µÇ¾î ÀÖÀ¸´Ï Ç×»ó ·¹ÆÛ·±½º¸¦ Âü°íÇϽʽÿÀ. °úÁ¦°¡ ¹«¾ùÀÎÁö ±¸Ã¼ÀûÀ¸·Î ¾Ë·Á Áֽðí ÀÛ¼ºÇϽŠÄÚµå¿Í ¿øÇÏ´Â Äڵ带 º¸¿© ÁÖ½Ã¸é ¾î¶² ¹®Á¦Á¡ÀÌ ÀÖ´ÂÁö ¿©·¯ ȸ¿ø´ÔµéÀÌ ¾Ë ¼ö ÀÖÀ» °Å °°³×¿ä.

Stranger 2¿ù5ÀÏ 12:30:56  

1¹ø¿¡ ´ëÇÑ ´äº¯Àº °á·ÐÀûÀ¸·Î "SetWindowPos ÇÔ¼ö´Â ù ¹øÂ° ÀÎÀÚ·Î ÁØ À©µµ¿ì(ÇÚµé)ÀÇ ºÎ¸ð À©µµ¿ì¸¦ ±âÁØÀ¸·Î ÇÑ ÁÂÇ¥¸¦ »ç¿ëÇÑ´Ù."¶ó°í ÇØ¼®Çصµ µÇ°Ú³ª¿ä? ÀÌ·± ÇØ¼®À̶ó¸é Â÷Àϵå À©µµ¿ì°¡ ºÎ¸ð À©µµ¿ìÀÎ ¸ÞÀÎ À©µµ¿ìÀÇ ÁÂÇ¥¸¦ »ç¿ëÇÏ´Â °ÍÀ̰í, ¸ÞÀÎ À©µµ¿ìÀÇ ºÎ¸ð´Â µ¥½ºÅ©Å¾ÀÌ´Ï µ¥½ºÅ©Å¾ÀÇ ÁÂÇ¥¸¦ »ç¿ëÇÏ´Â °ÍÀ̴ϱî¿ä.
±×¸®°í °úÁ¦´Â "´ëÈ­»óÀÚ°¡ ºÎ¸ð À©µµ¿ìÀÇ Á¤Áß¾Ó¿¡ ³ªÅ¸³ª°Ô ÇÏ´Â °Í"ÀÔ´Ï´Ù. ±×·¡¼­ À§ ÇÔ¼ö¿¡¼­ ÀÎÀÚ·Î ¹ÞÀº hWnd´Â ´ëÈ­»óÀÚÀÇ ÇÚµéÀÌ¿´´Âµ¥, ¸ÞÀÎ À©µµ¿ì°¡ ´ëÈ­»óÀÚ¸¦ ¸¸µé¾îÁÖ´Ï ´ëÈ­»óÀÚÀÇ ¼Ó¼ºÀÌ Â÷Àϵå¼Ó¼ºÀ̶ó°í Âø°¢Çß¾ú³×¿ä. ¾Ë°íº¸´Ï ¸ÞÀÎÀ©µµ¿ì ¹ÛÀ¸·Î ³ª°¥ ¼ö ÀÖ´Â ¿À¹ö·¦µå À©µµ¿ì¿´´Âµ¥¸»ÀÌÁÒ.

´äº¯ÇØÁּż­ Á¶±ÝÀº ¾Ë°ÚÁö¸¸ ¾ÆÁ÷µµ ÁÂÇ¥ÀÇ Á¾·ù¿¡ ´ëÇØ Á¶±ÝÀº Çò°¥¸®´Âµ¥, ÁÂÇ¥ÀÇ Á¾·ù´Â È­¸é¿µ¿ª(À©µµ¿ì¿µ¿ª),ÀÛ¾÷¿µ¿ª(Ŭ¶óÀÌ¾ðÆ®¿µ¿ª),¿öÅ©¿¡¸®¾î(ÀÛ¾÷Ç¥½ÃÁÙÀ» Á¦¿ÜÇÑ À©µµ¿ì¿µ¿ª) ÀÌ ¼¼ °¡ÁöÀΰ¡¿ä? ¿öÅ©¿¡¸®¾î¸¦ Çѱ۷Π¹ø¿ªÇϸé ÀÛ¾÷¿µ¿ª°°Àºµ¥ ÀÌ°Ô ¾î¶»°Ô µÈ°ÇÁö..


·Î±×ÀÎÇÏ¼Å¾ß ´ñ±ÛÀ» ´Þ ¼ö ÀÖ½À´Ï´Ù.