¿øÇü | int DialogBox( HINSTANCE hInstance, LPCTSTR lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc ); |
MFC ¿øÇü | virtual int CDialong::DoModal( ); |
Àμö |
¢ºhInstance : ´ëÈ»óÀÚ ÅÛÇø®Æ®¸¦ °¡Áø ÀνºÅϽº ÇÚµé. ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏ´Â ÇÁ·Î¼¼½º¿¡ ¸®¼Ò½º°¡ Á¤ÀǵǾî ÀÖÀ¸¸é WinMainÀ¸·Î Àü´ÞµÈ hInstance°ªÀ» ³Ñ°ÜÁØ´Ù. ´Ù¸¥ DLLÀ̳ª ½ÇÇà ÆÄÀÏ¿¡ ¸®½º½º°¡ ÀÖÀ» °æ¿ì ÇØ´ç ¸ðµâÀÇ ÀνºÅϽº ÇÚµéÀ» ³Ñ°ÜÁØ´Ù. ¢ºlpTemplate : ´ëÈ»óÀÚ ÅÛÇø®Æ®ÀÇ IDÀÌ´Ù. ³ÎÁ¾·á ¹®ÀÚ¿·Î Á¤ÀÇµÈ ÅÛÇø®Æ®ÀÇ À̸§À̰ųª Á¤¼öÇüÀÇ IDÀÌ´Ù. ¸¸¾à ´ëÈ»óÀÚ ÅÛÇø®Æ®°¡ Á¤¼öÇüÀ¸·Î Á¤ÀǵǾî ÀÖÀ» °æ¿ì MAKEINTRESOURCE ¸ÅÅ©·Î ÇÔ¼ö·Î ID¸¦ ÁöÁ¤ÇØ ÁØ´Ù. ¢ºhWndParent : ÀÌ ´ëÈ»óÀÚ¸¦ ¼ÒÀ¯ÇÏ´Â ¿À³Ê À©µµ¿ìÀÇ ÇÚµéÀÌ´Ù. ÀÌ ÇÚµéÀÌ ÁöÁ¤ÇÏ´Â À©µµ¿ì´Â ¸ð´Þ ´ëÈ»óÀÚ°¡ ½ÇÇàÁßÀÎ µ¿¾È¿¡ »ç¿ë ±ÝÁöµÈ´Ù. ¢ºlpDialogFunc : ´ëÈ»óÀÚ·Î Àü´ÞµÇ´Â ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â ¸Þ½ÃÁö ó¸® ÇÔ¼öÀÇ Æ÷ÀÎÅ͸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ ÇÔ¼ö´Â ¹Ýµå½Ã ´ÙÀ½°ú °°Àº ¿øÇüÀ¸·Î ¼±¾ðµÇ¾î¾ß ÇÑ´Ù. BOOL CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); À©µµ¿ìÀÇ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â À©µµ¿ì ÇÁ·Î½ÃÀú¿Í µ¿ÀÏÇÑ ¿øÇüÀ» °¡Áø´Ù. ÀÌ ÇÔ¼ö¿¡¼´Â ¸Þ½ÃÁö¸¦ ó¸®ÇßÀ» °æ¿ì TRUE¸¦ ¸®ÅÏÇÏ¸ç ¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾Ê¾ÒÀ¸¸é FALSE¸¦ ¸®ÅÏÇÑ´Ù. ´Ü ¿¹¿ÜÀûÀ¸·Î WM_INITDIALOG ¸Þ½ÃÁöÀÇ ¸®ÅÏ°ªÀº ¾î¶² ÄÁÆ®·Ñ¿¡ Æ÷Ä¿½º¸¦ ÁÙ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù. WM_INITDIALOG¿¡¼ SetFocus ÇÔ¼ö·Î ƯÁ¤ ÄÁÆ®·Ñ¿¡ Æ÷Ä¿½º¸¦ ÁÖ¾úÀ» °æ¿ì TRUE¸¦ ¸®ÅÏÇÏ¸ç ±×·¸Áö ¾ÊÀ» °æ¿ì FALSE¸¦ ¸®ÅÏÇϴµ¥ ÀÌ °æ¿ì ½Ã½ºÅÛÀº ÅÇ ¼ø¼°¡ °¡Àå ºü¸¥ ÄÁÆ®·Ñ¿¡°Ô Æ÷Ä¿½º¸¦ ÁØ´Ù. |
¸®ÅÏ | EndDialog ÇÔ¼öÀÇ Àμö¸¦ ¸®ÅÏÇϸç ÀÌ °ªÀº ´ëÈ»óÀÚÀÇ °á°ú°ªÀ¸·Î »ç¿ëµÈ´Ù. ¿¡·¯ ¹ß»ý½Ã -1À» ¸®ÅÏÇÑ´Ù. |
¼³¸í |
ÀÌ ÇÔ¼ö´Â ¸ð´Þ ´ëÈ»óÀÚ¸¦ ½ÇÇàÇÑ´Ù. lpTemplate°¡ ÁöÁ¤ÇÏ´Â ´ëÈ»óÀÚ¸¦ »ý¼ºÇÏ¿© ȸéÀ¸·Î Ãâ·ÂÇϸç(WS_VISIBLE ½ºÅ¸ÀÏÀÌ ¾ø¾îµµ ȸ鿡 º¸ÀδÙ) ¼ÒÀ¯ÀÚ À©µµ¿ì¸¦ »ç¿ë ±ÝÁö½ÃÅ°°í lpDialogFunc Àμö°¡ ÁöÁ¤ÇÏ´Â ¸Þ½ÃÁö ó¸® ÇÔ¼ö·Î ¸Þ½ÃÁö¸¦ º¸³»ÁÖ¾î ´ëÈ»óÀÚ¸¦ ½ÇÇàÇÑ´Ù. ¸ð´Þ ´ëÈ»óÀÚ´Â EndDialog°¡ È£ÃâµÉ ¶§±îÁö ½ÇÇàÀ» °è¼ÓÇϸç ÀÌ ÇÔ¼ö´Â ´ëÈ»óÀÚ°¡ ¿ÏÀüÈ÷ Á¾·áµÇ¾î¾ß ¸®ÅÏÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´©¸£¸é °£´ÜÇÑ ¼Ò°³ ´ëÈ»óÀÚ¸¦ º¸¿©ÁØ´Ù. ¸®¼Ò½º¿¡ ´ëÈ»óÀÚ ÅÛÇø®Æ®¸¦ ¸ÕÀú Á¤ÀÇÇØ¾ß ÇÏ¸ç ´ëÈ»óÀÚ ÇÁ·Î½ÃÀú¿¡¼´Â WM_INITDIALOG, WM_COMMAND ¸Þ½ÃÁö¸¦ ó¸®ÇÑ´Ù. #include "resource.h" BOOL CALLBACK DialogBoxProc(HWND hDlg,UINT iMessage,WPARAM wParam,LPARAM lParam) { switch(iMessage) { case WM_INITDIALOG: return TRUE; case WM_COMMAND: switch (wParam) { case IDOK: case IDCANCEL: EndDialog(hDlg,0); return TRUE; } break; } return FALSE; } LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) { switch(iMessage) { case WM_LBUTTONDOWN: DialogBox(g_hInst,MAKEINTRESOURCE(IDD_DIALOG1),hWnd,DialogBoxProc); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd,iMessage,wParam,lParam)); } ´ÙÀ½ ¿¹Á¦´Â ´ëÈ»óÀÚ ±â¹ÝÀÇ ÇÁ·ÎÁ§Æ®ÀÌ´Ù. º°µµÀÇ ¸ÞÀÎ À©µµ¿ì¸¦ ¸¸µéÁö ¾Ê°í DoModal ÇÔ¼ö È£Ã⸸À¸·Î ¸ð´Þ ´ëÈ»óÀÚ¸¦ È£ÃâÇÏ¿© ÀÌ ´ëÈ»óÀÚ°¡ °ð ÇÁ·Î¼¼½ºÀÇ ¸ÞÀÎ À©µµ¿ì°¡ µÈ´Ù. °£´ÜÇÑ ÇüÅÂÀÇ ÇÁ·ÎÁ§Æ®ÀÎ °æ¿ì ÀÌ·± ÇüÅ·ΠÇÁ·ÎÁ§Æ®¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª ´ëÈ»óÀÚ ±â¹ÝÀÇ ÇÁ·ÎÁ§Æ®´Â À©µµ¿ì ÇÁ·Î½ÃÀú°¡ ½Ã½ºÅÛ ³»ºÎ¿¡ ¼û°ÜÁ® Àֱ⠶§¹®¿¡ ¿©·¯ °¡Áö Á¦¾à »çÇ×ÀÌ ÀÖÀ¸¸ç º¹ÀâÇÑ ÇüÅÂÀÇ ÇÁ·ÎÁ§Æ®¿¡´Â ÀûÇÕÇÏÁö ¾Ê´Ù. #include |
Âü°íÇÔ¼ö |
EndDialog : ´ëÈ»óÀÚ¸¦ Á¾·áÇÑ´Ù. CreateDialog : ¸ðµ¨¸®½º ´ëÈ»óÀÚ¸¦ »ý¼ºÇÑ´Ù. DialogBoxParam, DialogBoxIndirect |
Ç÷¿Æû | 95ÀÌ»ó |
ÂüÁ¶ |
written by http://www.winapi.co.kr
|