À©µµ¿ì¸¦ ÀÛ¼ºÇϱâ À§Çؼ´ÂCWindowImplŬ·¡½º¸¦ »ç¿ëÇß½À´Ï´Ù¸¸, ´ÙÀ̾ó·Î±×¸¦ ÀÛ¼ºÇϱâ
À§Çؼ´ÂCDialogImplŬ·¡½º¸¦ »ç¿ëÇÕ´Ï´Ù.
¡¡ÀÌÇÏ¿¡ ³ªÅ¸³»´Â
°ÍÀº ¸ð´ú ´ÙÀ̾ó·Î±×¸¦ Ç¥½ÃÇϱ⸸ ÇÏ¸é µÇ´Â °£´ÜÇÑ ÇÁ·Î±×·¥ÀÇ
¿ø½Ã ÄÚµåÀÔ´Ï´Ù. ÀÌ ÇÁ·Î±×·¥¿¡¼´Â CDialogImplŬ·¡½º·ÎºÎÅÍ »ó¼Ó Ŭ·¡½º CMainDlg(À̰ÍÀÌ ¸ÞÀÎ À©µµ¿ì°¡ µË´Ï´Ù ) ¸¦ ¸¸µé¾î CMainDlg Ŭ·¡½º³»¿¡¼ WM_INITDIALOG ¸Þ¼¼Áö¿¡ÀÇ ÀÀ´ä°ú
IDOK,IDCANCEL¶ó°í ÇÏ´Â ID¸¦ °¡Áö´Â WM_COMMAND ¸Þ¼¼Áö¿¡ÀÇ ÀÀ´äÀ» Á¤ÀÇÇϰí
ÀÖ½À´Ï´Ù. µ¡ºÙ¿©
ÀÌ ÇÁ·Î±×·¥Àº Win32Application
ÇÁ·ÎÁ§Æ®·Î ºôµå ÇÕ´Ï´Ù.

|
// stdafx.h #include <atlbase.h> #include <atlapp.h> extern CAppModule _Module; #include <atlwin.h>
#include <atlcrack.h> #include <atlmisc.h>
|
|
// MainDlg.h class CMainDlg : public CDialogImpl<CMainDlg> { public: enum { IDD = IDD_DIALOG1 };
// ¸Þ¼¼Áö ¸Ê BEGIN_MSG_MAP_EX(CMainDlg) MSG_WM_INITDIALOG(OnInitDialog) COMMAND_ID_HANDLER_EX(IDOK, OnOK) COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel) END_MSG_MAP()
LRESULT OnInitDialog(HWND hWnd, LPARAM lParam){ // ½ºÅ©¸°ÀÇ Áß¾Ó¿¡ ¹èÄ¡ CenterWindow();
// Å« ¾ÆÀÌÄÜ ¼³Á¤ HICON hIcon = AtlLoadIconImage(IDI_ICON_MAIN, LR_DEFAULTCOLOR, ::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON)); SetIcon(hIcon, TRUE);
// ÀÛÀº ¾ÆÀÌÄÜ ¼³Á¤ HICON hIconSmall = AtlLoadIconImage(IDI_ICON_MAIN, LR_DEFAULTCOLOR, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON)); SetIcon(hIconSmall, FALSE);
return TRUE; }
void OnOK(UINT uNotifyCode, int nID, HWND hWndCtl){ EndDialog(nID); }
void OnCancel(UINT uNotifyCode, int nID, HWND hWndCtl){ EndDialog(nID); } };
|
|
// modal.cpp #include "stdafx.h"
#include "resource.h"
#include "MainDlg.h"
CAppModule _Module;
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE, LPTSTR lpCmdLine, int nCmdShow) { _Module.Init(NULL, hInstance);
CMainDlg dlgMain; int nRet = dlgMain.DoModal();
_Module.Term();
return nRet; }
|
¡¡¿ì¼±Àº ÇÁ·ÎÁ§Æ®¿¡
´ÙÀ̾ó·Î±× ÀÚ¿ø°ú
¾ÆÀÌÄÜ ÀÚ¿øÀ»
Ãß°¡ÇØ ÀÚ¿øIDÀ¸·Î¼ °¢°¢ IDD_DIALOG1IDI_ICON1
¸¦ ¼³Á¤ÇÕ´Ï´Ù.

¡¡´ÙÀ½¿¡ À©µµ¿ì ¶§¿Í °°ÀÌ CAppModule Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ±Û·Î¹ú
ÇÏ°Ô ¼±¾ðÇØ
_tWinMain()ÀÇ ÃÖÃÊ¿Í
ÃÖÈÄ·Î ÃʱâÈ¿Í
µÚ󸮸¦ Çϰí ÀÖ½À´Ï´Ù. ¸ð´ú ´ÙÀ̾ó·Î±×¸¦ ÀÛ¼ºÇÏ·Á¸é DoModal()¸¦ È£ÃâÇÕ´Ï´Ù.
¡¡CMainDlg Ŭ·¡½º´Â CDialogImpl Ŭ·¡½º·ÎºÎÅÍ ÆÄ»ýÇϰí
ÀÖ½À´Ï´Ù¸¸ CDialogImplÀÇ Á¦1ÅÛÇø´ Àμö¿¡µµ CMainDlg¶ó´Â À̸§À» °Ç³×ÁÝ´Ï´Ù ( Á¦2ÅÛÇø´ Àμö´Â »ý·« °¡´ÉÇÕ´Ï´Ù. ¿©±â¿¡¼´Â
»ý·« Çϰí ÀÖ½À´Ï´Ù. ). CMainDlgŬ·¡½º³»¿¡¼´Â public ¼±¾ðÀÇ
enum¿¡ ÀÇÇØ ´ÙÀ̾ó·Î±× ÀÚ¿ø ID¸¦ Á¤ÀÇÇØ ¸Þ¼¼Áö ¸Ê¿¡ ÀÇÇØ ¸Þ¼¼Áö¿Í ±×¿¡ ´ëÇÑ Çڵ鷯¸¦ ¹°í ÀÖ½À´Ï´Ù.
ÀÌ ÇÁ·Î±×·¥¿¡¼´Â ÀÚ¿ø ID°¡ IDOK ¶Ç´Â IDCANCEL ÀÇ ¹öưÀ»
´©¸£¸é ÇÁ·Î±×·¥À»
Á¾·áÇϵµ·Ï Çϰí ÀÖ½À´Ï´Ù. À̹ø ¿¹¿¡¼´Â ¸ð´ú ´ÙÀ̾ó·Î±×°¡ ¸ÞÀÎ À©µµ¿ì°¡
µÇ¹Ç·Î ¹öưÀ» ´·¶À» ¶§¿¡ EndDialog()¸¦ È£ÃâÇØ ´ÙÀ̾ó·Î±×¸¦ ´Ù¹°°í ÀÖ½À´Ï´Ù.