API 3Àå¿¡¼´Â ÀÏ¹Ý ÀûÀÎ À©µµ¿ì ½ºÅ©¸°¿¡ ´ÙÀ̾ó·Î±× ¹Ú½º¸¦ ¿Ã·Á º¸°Ú´Ù. MFCÀÇ ´ÙÀ̾ó·Î±× ¹ÙÇÏ°í ºñ½ÁÇÏ´Ù°í º¼¼ö ÀÖÀ»°ÍÀÌ´Ù. Å« È帧Àº ¸Þ¼¼Áö ó¸® ºÎºÐ°ú ¸ÞÀÎ À©µµ¿ì ¸¸µé±â¿Í ÀÚ½Ä ´ÙÀ̾ó·Î±× ¹Ú½º ±×¸®±â, ´ÙÀ̾ó·Î±× ¸Þ¼¼Áö ó¸®ÀÌ´Ù. ±×¸®°í ¸¶Áö¸·À¸·Î ÀÌÇÁ·Î±×·¥ÀÇ ¹®Á¦Á¡¿¡ ´ëÇؼ ¾Ë¾Æ º¸µµ·Ï ÇÏÀÚ. <<¸Þ¼¼Áö ó¸®>>: while (GetMessage(&msg, NULL, 0, 0)) { if ((g_hDlg== 0) || ! IsDialogMessage(g_hDlg, &msg)) { TranslateMessage(&msg); DispatchMessage(&msg); } } g_hDlg(´ÙÀ̾ó·Î±× ¹Ú½º ¸Þ¼¼Áö) ÇÚµéÀÌ NULL°ªÀÏ ¶§´Â ¹«Á¶°Ç ¸ÞÀÎ À©µµ¿ì ºÎºÐÀ» ½ÇÇàÇÑ´Ù. ÇÚµéÀÌ ÃʱâÈ µÇ°í ³ ÀÌÈÄ ºÎÅÍ´Â IsDialogMessage()ÇÔ¼ö¸¦ ½ÇÇàÇÏ¿©, ´ÙÀ̾ó·Î±× À©µµ¿ì¸¦ ½ÇÇàÇÑ´Ù. ´ÙÀ̾ó·Î±× À©µµ¿ì¿¡¼ TranslateMessage(), DispatchMessage() µÎ ÇÔ¼öÀÇ Ã³¸®¸¦ ÇÏ°í Àֱ⠶§¹®¿¡ ´ÙÀ̾ó·Î±× ¹Ú½º¿¡¼ 󸮵ǾúÀ»¶§¿¡´Â ¸ÞÀÎ À©µµ¿ì ´Ù½Ã ½ÇÇàÇÏ¸é ¾ÈµÈ´Ù. <<´ÙÀ̾ó·Î±× ¹Ú½º ±×¸®±â>>: void InitDialog (HWND hWnd, HINSTANCE hInst) { RECT rc; int xSize, ySize; if (g_hDlg) return; g_hDlg = CreateDialog(hInst, "MAINDLG", hWnd, (DLGPROC) DialogProc); if (g_hDlg) { ShowWindow(g_hDlg, SW_SHOW); GetWindowRect(g_hDlg, &rc); xSize = rc.right - rc.left + 1; ySize = rc.bottom - rc.top + 1; GetClientRect(hWnd, &rc); MoveWindow(g_hDlg, rc.right - xSize + 1, rc.top, rc.right, rc.bottom, TRUE); } } Ưº°È÷ ¼³¸í ÇÒ°Ç ¾ø´Ù. ¸ÞÀÎ À©µµ¿ì ÇÁ·Î½ÃÀúÀÇ WM_CREATE ¸Þ¼¼Áö¿¡¼ ´ÙÀ̾ó·Î±× ¹Ú½º¸¦ ¸¸µç´Ù. ±×³É ´ÙÀ̾ó·Î±× ÇÁ·Î½ÃÀú¸¦ CreateDialogÇÔ¼ö¿¡ µî·Ï½ÃÄÑ ÁÖ°í ´ÙÀ̾ó·Î±× ¹Ú½ºÀÇ Å©±â¸¦ Á¶Á¤ÇÏ°í ÀÖ´Â°Í »ÓÀÌ´Ù. IsDialogMessage() ÇÔ¼ö¸¦ ½ÇÇàÇϸé DialogProc()ÇÔ¼ö¿¡¼ ¸Þ¼¼Áö¸¦ ó¸®ÇÒ°ÍÀÌ´Ù. <<´ÙÀ̾ó·Î±× ¸Þ¼¼Áö ó¸®>>: LRESULT CALLBACK DialogProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: Do_WM_COMMAND(wParam, lParam); return TRUE; default: break; } return FALSE; } º¸Åë ´ÙÀ̾ó·Î±× ¹Ú½ºÀÇ ¸Þ¼¼Áö ó¸® ·çƾ°ú µ¿ÀÏÇÏ´Ù. << ¹®Á¦Á¡ >> ¸ÞÀÎ À©µµ¿ìÀÇ ÇÚµé·Î ´ÙÀ̾ó ·Î±× ¹Ú½ºÀÇ À§Ä¡¿¡ Ãâ·ÂÀ» Çϸé, ´ÙÀ̾ó ·Î±× ¹Ú½ºÀ§¿¡ ±×·ÁÁø´Ù. 1¹ø ¹öÆ°À» ´©¸£¸é ´ÙÀ̾ó ·Î±× ¹Ú½ºÀ§¿¡ ±×·ÁÁø´Ù. °øºÎ°¡ ¸ñÀûÀ̱⠶§¹®¿¡... ¹ö±×´Â ¹ö·ÁµÎ°í À̹øÀå´Â ³¡³»¾ß ÇÒ°Í °°´Ù. ¼Ò½ºº¸±â DOWNLOAD ȨÀ¸·Î À妽º·Î |