WM_INITDIALOG ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â µ¿¾È ´ëÈ »óÀÚ¿Í ³»¿ë¹°À» ÃʱâÈ ÇÕ´Ï´Ù. °¡Àå ÀϹÝÀûÀÎ ÀÛ¾÷ÀÌ ÇöÀç ´ëÈ »óÀÚ ¼³Á¤À» ¹Ý¿µ Çϱâ À§ÇØ ÄÁÆ®·ÑÀ» ÃʱâÈ ÇÏ´Â °ÍÀÔ´Ï´Ù. ¶Ç ´Ù¸¥ ÀϹÝÀûÀÎ ÀÛ¾÷ ¼¾ÅÍ ¶Ç´Â ¼ÒÀ¯ÀÚ Ã¢ ³» ȸ鿡 ´ëÈ »óÀÚÀÔ´Ï´Ù. ÀϺΠ´ëÈ »óÀÚ¿¡ ´ë ÇÑ À¯¿ëÇÑ ÀÛ¾÷ ±âº» ÀÔ·ÂµÈ Æ÷Ä¿½º¸¦ ¹ÞÀ» ÇÏ´Â ´ë½Å ÇØ´çµÈ ÄÁÆ®·Ñ¿¡ ÀÔ·ÂµÈ Æ÷Ä¿½º¸¦ ¼³Á¤ ÇÏ´Â °Í.
´ÙÀ½ ¿¹Á¦¿¡¼´Â ´ëÈ »óÀÚ ÇÁ·Î½ÃÀú ´ëÈ »óÀÚ °¡¿îµ¥ °í WM_INITDIALOG ¸Þ½ÃÁö¸¦ ó¸® ÇÏ´Â µ¿¾È ÀÔ·ÂµÈ Æ÷Ä¿½º¸¦ ¼³Á¤ ÇÕ´Ï´Ù. ´ëÈ »óÀÚ °¡¿îµ¥¿¡ ÇÁ·Î½ÃÀú ¼ÒÀ¯ÀÚ Ã¢¿¡ ´ë ÇÑ ´ëÈ »óÀÚ Ã¢ »ç°¢ÇüÀ» °Ë»ö ÇÏ °í ´ëÈ »óÀÚ¿¡ ´ë ÇÑ »õ À§Ä¡¸¦ °è»ê ÇÕ´Ï´Ù. ÇÁ·Î½ÃÀú¿¡¼ ±âº» ÀÔ·ÂµÈ Æ÷Ä¿½ºÀÇ ½Äº°ÀÚ¸¦ È®ÀÎ ÇÏ·Á¸é wParam ¸Å°³ º¯¼ö¸¦ °Ë»ç ÇÏ´Â ÀÔ·ÂµÈ Æ÷Ä¿½º¸¦ ¼³Á¤ ÇÏ·Á¸é:
HWND hwndOwner;
RECT rc, rcDlg, rcOwner;
WM_INITDIALOG »ç·Ê: / / ¼ÒÀ¯ÀÚ Ã¢ ¹× ´ëÈ »óÀÚ »ç°¢Çü.
¸¸¾à ((hwndOwner GetParent(hwndDlg)) = = NULL) {
hwndOwner = GetDesktopWindow();
}
GetWindowRect hwndOwner, ¾ÚÇÁ (rcOwner);
GetWindowRect (hwndDlg, ¹× rcDlg);
CopyRect (rc & rcOwner);
/ / ¼ÒÀ¯ÀÚ¸¦ ¿ÀÇÁ¼Â ÇÏ °í ´ëÈ »óÀÚÀÇ »ç°¢Çü ÀÖµµ·Ï / ¿À¸¥ÂÊ ¹× ¾Æ·¡ÂÊ °ªÀ» ³ªÅ¸³À´Ï´Ù ³Êºñ / ¹× / / ³ôÀÌ, ±×¸®°í À̹ø ÁÖ ¿ÀÇÁ¼Â ´ÙÀ½ Ãë¼Ò¸¦ ´Ù½Ã ¼ÒÀ¯ÀÚ / / ´ëÈ »óÀÚ¿¡ ÀÇÇØ Â÷Áö ÇÏ´Â °ø°£.
OffsetRect (& rcDlg,-rcDlg.left,-rcDlg.top);
OffsetRect (rc, ¹×-rc.left,-rc.top);
OffsetRect (rc, ¹×-rcDlg.right,-rcDlg.bottom);
/ / »õ À§Ä¡´Â ³ª¸ÓÁö Àý¹ÝÀÇ ÇÕ / / °ø°£ ¹× ¼ÒÀ¯ÀÚÀÇ ¿ø·¡ À§Ä¡.
SetWindowPos (hwndDlg, HWND_TOP, rcOwner.left + (rc.right/2), rcOwner.top + (rc.bottom / 2), 0, 0, / / Å©±â Àμö¸¦ ¹«½Ã SWP_NOSIZE);
°æ¿ì (wParam GetDlgCtrlID((HWND))! = ID_ITEMNAME) {SetFocus (GetDlgItem (hwndDlg, ID_ITEMNAME));
FALSE; ¹Ýȯ
} TRUE¸¦ ¹Ýȯ ÇÕ´Ï´Ù.
À§ÀÇ ¹®¿¡¼ ÇÁ·Î½ÃÀú ´ëÈ »óÀÚ¿¡ ´ë ÇÑ ¼ÒÀ¯ÀÚ Ã¢ ÇÚµéÀ» °Ë»ö ÇÏ·Á¸é GetParent ÇÔ¼ö¸¦ »ç¿ë ÇÕ´Ï´Ù. ÀÌ ÇÔ¼ö´Â ´ëÈ »óÀÚ¿¡ ´ë ÇÑ Ã¢ ÇÚµé ¹× ÀÚ½Ä Ã¢¿¡ ´ë ÇÑ ºÎ¸ð â ÇÚµé ¼ÒÀ¯ÀÚ¸¦ ¹ÝȯÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ¾øÀ½ ¼ÒÀ¯ÀÚ°¡ ´ëÈ »óÀÚ¸¦ ¸¸µé ¼ö ÀÖ½À´Ï´Ù, ¶§¹®¿¡ ÇÁ·Î½ÃÀú¿¡¼ ¹Ýȯ µÈ ÇÚµéÀ» È®ÀÎ ÇÏ °í ÇÊ¿äÇÑ °æ¿ì¿¡ µ¥½ºÅ©Åé â ÇÚµéÀ» °¡Á®¿Ã GetDesktopWindow ÇÔ¼ö¸¦ »ç¿ë ÇÏ. »õ À§Ä¡¸¦ °è»ê ÈÄ ÇÁ·Î½ÃÀú SetWindowPos ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© À̵¿ ´ëÈ »óÀÚÀÇ ¼ÒÀ¯ÀÚ Ã¢ ¸Ç À§¿¡ ³²¾Æ ÀÖµµ·Ï HWND_TOP °ªÀ» ÁöÁ¤ ÇÏ´Â ´ëÈ »óÀÚ.
ÀÔ·ÂµÈ Æ÷Ä¿½º¸¦ ¼³Á¤ Çϱâ Àü¿¡ ÀýÂ÷¸¦ ±âº» ÀÔ·ÂµÈ Æ÷Ä¿½º¸¦ ÄÁÆ®·Ñ ½Äº°ÀÚ¸¦ È®ÀÎ ÇÕ´Ï´Ù. ½Ã½ºÅÛÀÌ wParam ¸Å°³ º¯¼ö¿¡¼ ±âº» ÀÔ·ÂµÈ Æ÷Ä¿½ºÀÇ Ã¢ ÇÚµéÀ» Àü´ÞÇÕ´Ï´Ù. GetDlgCtrlID ÇÔ¼ö´Â â Çڵ鿡 ÀÇÇØ ½Äº° µÈ ÄÁÆ®·ÑÀÇ ½Äº°ÀÚ¸¦ ¹Ýȯ ÇÕ´Ï´Ù. ½Äº°ÀÚ¿¡´Â ¿Ã¹Ù¸¥ ½Äº°ÀÚ¿Í ÀÏÄ¡ ÇÏÁö ¾ÊÀ¸¸é, ÇÁ·Î½ÃÀú´Â SetFocus ÇÔ¼ö¸¦ »ç¿ë ÇÏ ¿© ÀÔ·ÂµÈ Æ÷Ä¿½º¸¦ ¼³Á¤ ÇÕ´Ï´Ù. ¿øÇÏ´Â ÄÁÆ®·ÑÀÇ Ã¢ ÇÚµéÀ» °Ë»ö ÇÏ´Â µ¥ ÇÊ¿äÇÑ GetDlgItem ÇÔ¼ö.