< ÇÁ·ÓÆÛƼ ½ÃÆ® >
WTL¿¡¼ ÇÁ·ÓÆÛƼ ½ÃÆ®¿Í ±× ÇÁ·ÓÆÛƼ ½ÃÆ® »ó¿¡ Ç¥½ÃÇÏ´Â ÅÇ(ÇÁ·ÓÆÛƼ ÆäÀÌÁö)À» °¢°¢ CPropertySheetImpl, CPropertyPageImpl ¶ó°í ÇÏ´Â ÅÛÇø´ Ŭ·¡½º¿¡¼ ĸ½¶ÈÇϰí ÀÖ½À´Ï´Ù. ÀÌ·¯ÇÑ Å¬·¡½º´Â ATLÀÇ CDialogImplŬ·¡½º¿Í °°ÀÌ base class·Î¼ÀÇ º¸°í »ç¿ëÇÕ´Ï´Ù. atldlgs.h Çì´õ¿¡¼´Â °¢°¢ÀÇ »ó¼Ó Ŭ·¡½º·Î¼ CPropertySheetŬ·¡½º¿Í CPropertyPageŬ·¡½º°¡ Á¤Àǵǰí ÀÖ½À´Ï´Ù.
|
// atldlgs.h class CPropertySheet : public CPropertySheetImpl<CPropertySheet> { ... ... template <WORD t_wDlgTemplateID> class CPropertyPage : public CPropertyPageImpl<CPropertyPage<t_wDlgTemplateID>
> { ... ... |
¡¡WTLÀÇ CPropertySheet Ŭ·¡½º¿Í CPropertyPageŬ·¡½º´Â MFCÀÇ µ¿¸íÀÇ
Ŭ·¡½º¿Í °ÅÀÇ °°Àº ¸â¹ö ÇÔ¼ö¸¦ ÁغñÇØ ÀÖ½À´Ï´Ù. ¾Æ·¡¿¡ ³ªÅ¸³»´Â °ÍÀº CPropertySheetŬ·¡½º¿Í CPropertyPage Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â °£´ÜÇÑ ¿¹ ÀÔ´Ï´Ù. ´ÙÀ̾ó·Î±× ÀÚ¿øÀ» ÇÁ·ÓÆÛƼ ÆäÀÌÁö¿¡ °ü·Ã Áö¾î ±× ÆäÀÌÁö¸¦ ÇÁ·ÓÆÛƼ ½ÃÆ®¿¡ Ãß°¡ÇØ Ç¥½ÃÇÒ »ÓÀÔ´Ï´Ù. µ¡ºÙ¿© WTLÀÇ ÇÁ·ÓÆÛƼ ½ÃÆ® °ü·Ã Ŭ·¡½º¸¦ »ç¿ëÇϱâ À§Çؼ´Â atldlgs.h Çì´õ¸¦ ÀÎŬ·çµå ÇÒ Çʿ䰡 ÀÖ½À´Ï´Ù.

|
CPropertyPage<IDD_PROPPAGE_VERSION> page; CPropertySheet sheet(_T("»ùÇÃ")); sheet.AddPage(page); if(sheet.DoModal() == IDOK){ // [OK]¹öưÀ» ´·¯ ´Ý¾ÒÀ» ¶§ÀÇ Ã³¸® } |
¿ì¼± ÇÁ·ÎÁ§Æ®¿¡ ÇÁ·ÓÆÛƼ ÆäÀÌÁö¿ëÀÇ ´ÙÀ̾ó·Î±× ÀÚ¿ø(IDD_PROPPAGE_MEDIUM)À» Ãß°¡ÇØ ID¸¦IDD_PROPPAGE_VERSION·Î º¯°æÇÕ´Ï´Ù. ±×¸®°í ±× ´ÙÀ̾ó·Î±× ÀÚ¿ø¿¡ ½ºÅÂÆ½ ÄÁÆ®·ÑÀ» ¹èÄ¡ÇØ ij¸¯ÅÍ ¶óÀÎÀ̳ª ¾ÆÀÌÄÜÀ» ¼³Á¤ÇÕ´Ï´Ù. ÀÌ ´ÙÀ̾ó·Î±× ÀÚ¿øÀ» CPropertyPage Ŭ·¡½ºÀÇ ÅÛÇø´ Àμö·Î ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î ÇÁ·ÓÆÛƼ ÆäÀÌÁö¿¡ ´ÙÀ̾ó·Î±× ÀÚ¿øÀ» °ü·Ã ÁöÀ» ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÓÆÛƼ ÆäÀÌÁöÀÇ ÅÇ ºÎºÐ¿¡´Â ´ÙÀ̾ó·Î±× ÀÚ¿øÀÇ Å¸ÀÌÆ² ij¸¯ÅÍ ¶óÀÎÀÌ Ç¥½ÃµË´Ï´Ù. µ¡ºÙ¿© CPropertyPage Ŭ·¡½ºÀÇ constructor¿¡ ij¸¯ÅÍ ¶óÀÎÀ» ÁöÁ¤ÇÏ¸é ±× Ä³¸¯ÅÍ ¶óÀÎÀÌ ÅÇ ºÎºÐÀÇ Ä³¸¯ÅÍ ¶óÀÎÀ¸·Î¼ ¼³Á¤µË´Ï´Ù.
´ÙÀ½¿¡ CPropertySheet Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ AddPage()¿¡ ÀÇÇØ ÇÁ·ÓÆÛƼ ÆäÀÌÁö¸¦ ÇÁ·ÓÆÛƼ ½ÃÆ®¿¡ Ãß°¡ÇÕ´Ï´Ù. ÇÁ·ÓÆÛƼ ½ÃÆ®¿¡´Â AddPage()À» ¿©·¯ Â÷·Ê È£ÃâÇÏ´Â °Í¿¡ ÀÇÇØ º¹¼öÀÇ ÇÁ·ÓÆÛƼ ÆäÀÌÁö¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. CPropertySheet Ŭ·¡½ºÀÇ °æ¿ìµµ
constructor¿¡ ij¸¯ÅÍ ¶óÀÎÀ» ÁöÁ¤ÇÏ´Â °Í¿¡ ÀÇÇØ ÇÁ·ÓÆÛƼ ½ÃÆ®ÀÇ Å¸ÀÌÆ² ij¸¯ÅÍ ¶óÀÎÀ» ¼³Á¤ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
ÇÁ·ÓÆÛƼ ½ÃÆ®¸¦ ¸ð´Þ·Î Ç¥½ÃÇϱâ À§Çؼ´Â DoModal()À» »ç¿ëÇÕ´Ï´Ù. [OK] ¹öưÀ» ´·¯ ÆÄÀÏ ¼±Åà ´ÙÀ̾ó·Î±×¸¦ ´ÝÀº °æ¿ì´Â ¹Ýȯ°ªÀ¸·Î¼ IDOK°¡ [ĵ½½]À» ´·¯ ´Ý¾ÒÀ» °æ¿ì´ÂIDCANCELÀÌ ¹ÝȯµË´Ï´Ù. µ¡ºÙ¿© Create()¸¦ »ç¿ëÇϸé ÇÁ·ÓÆÛƼ ½ÃÆ®¸¦ ¸ð´Þ¸®½º·Î Ç¥½ÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
¡¡À§ÀÇ ¿¹ ¿¡¼´Â ´ÜÁö ´ÙÀ̾ó·Î±× ÀÚ¿ø»ó¿¡ ½ºÅÂÆ½ ÄÁÆ®·ÑÀ» ¹èÄ¡ÇØ ij¸¯ÅÍ ¶óÀÎÀ̳ª ¾ÆÀÌÄÜ Ç¥½ÃÇÏ´Â °Í¸¸À¸·Î Çß´Ù. ±×·¯³ª ÇÁ·ÓÆÛƼ ½ÃÆ®ÀÇ ½ÇÁ¦ÀÇ ¿ëµµ´Â ´ÙÀ̾ó·Î±× ¸®¼Ò½º »óÀÇ ¿©·¯°¡Áö ÄÁÆ®·Ñ¿¡ µ¥ÀÌÅ͸¦ ¼³Á¤Çϰųª ±× µ¥ÀÌÅ͸¦ ¿ÜºÎÀÇ Å¬·¡½º¿Í ±³È¯ÇÕ´Ï´Ù. ±×·±µ¥, ´ÙÀ½Àº CPropertySheetImplŬ·¡½º³ª CPropertyPageImplŬ·¡½º·ÎºÎÅÍ »ó¼Ó Ŭ·¡½º¸¦ ÀÛ¼ºÇÏ¿© ÇÁ·ÓÆÛƼ ½ÃÆ®ÀÇ µ¿ÀÛÀ» Ä¿½ºÅÒ¸¶ÀÌÁî ÇÏ´Â ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.

¿ì¼± ÇÁ·ÎÁ§Æ®¿¡ ÇÁ·ÓÆÛƼ ÆäÀÌÁö¿ëÀÇ ´ÙÀ̾ó·Î±× ¸®¼Ò½º(IDD_PROPPAGE_MEDIUM)¸¦ Ãß°¡ÇØ ID¸¦ IDD_PROPPAGE_WINDOW·Î º¯°æÇÕ´Ï´Ù. ÀÌ ´ÙÀ̾ó·Î±× ¸®¼Ò½º¿¡´Â ID°¡ IDC_CHECK_TOPMOSTÀÇ Ã¼Å© ¹Ú½º¸¦ Ãß°¡ÇÕ´Ï´Ù.
´ÙÀ½¿¡ CustomSheet.h ¶ó°í ÇÏ´Â Çì´õ ÆÄÀÏÀ» ÁغñÇÏ¿© °Å±â¿¡ CCustomPage ¶ó°í ÇÏ´Â ÇÁ·ÓÆÛƼ ÆäÀÌÁö Ŭ·¡½º¸¦ Á¤ÀÇÇÕ´Ï´Ù.
|
// CustomSheet.h class CCustomPage : public CPropertyPageImpl<CCustomPage> { CButton
m_button_topmost; public: enum { IDD = IDD_PROPPAGE_WINDOW }; bool m_bTopmost; // constructor¡¡ ¡¡ CCustomPage(ATL::_U_STRINGorID title = (LPCTSTR)NULL) : CPropertyPageImpl<CCustomPage>(title) {} BEGIN_MSG_MAP_EX(CCustomPage)
MSG_WM_INITDIALOG(OnInitDialog)
CHAIN_MSG_MAP(CPropertyPageImpl<CCustomPage>) END_MSG_MAP() LRESULT OnInitDialog(HWND hWnd, LPARAM lParam){ m_button_topmost = GetDlgItem(IDC_CHECK_TOPMOST); m_button_topmost.SetCheck(m_bTopmost); return TRUE; } BOOL OnKillActive(){ m_bTopmost = (m_button_topmost.GetCheck()
!= 0); return TRUE; } }; |
CCustomPageŬ·¡½º´Â CPropertyPageImplŬ·¡½º·ÎºÎÅÍ ÆÄ»ýÇϰí ÀÖ¾î(ÅÛÇø´ Àμö´Â ¾Æ´Ï°í ) enum¿¡ ÀÇÇØ Á÷Á¢ ´ÙÀ̾ó·Î±× ¸®¼Ò½º (IDD_PROPPAGE_WINDOW)À» °ü·Ã Áþ°í ÀÖ½À´Ï´Ù. ±×¸®°í, üũ ¹Ú½ºÀÇ Ã¼Å© »óŸ¦ ³ªÅ¸³»´Â m_bTopmost¶ó°í ÇÏ´Â bool ÇüÅ ¸â¹ö º¯¼ö¸¦ °¡Áö°í ÀÖ¾î ÀÌ º¯¼ö¸¦ »ç¿ëÇØ ¿ÜºÎÀÇ Å¬·¡½º¿Í µ¥ÀÌÅÍÀÇ ±³È¯À» ÇÕ´Ï´Ù. CCustomPage Ŭ·¡½ºÀÇ WM_INITDIALOG ¸Þ¼¼Áö Çڵ鷯¿¡¼´Â ÀÌ º¯¼öÀÇ °ªÀ¸·Î üũ ¹Ú½º »óŸ¦ ÃʱâÈÇØ OnKillActive() ¾È¿¡¼ üũ ¹Ú½º »óŸ¦ m_bTopmost¿¡ º¸Á¸ÇÕ´Ï´Ù. OnKillActive()´Â ÇÁ·ÓÆÛƼ ÆäÀÌÁö°¡ Æ÷Ä¿½º¸¦ ÀÒÀ» ¶§([OK] ¹öưÀ» ´·¯ ÇÁ·ÓÆÛƼ ½ÃÆ®¸¦ ´ÝÀ» ¶§µµ Æ÷ÇÔÇÑ´Ù)¿¡ ºÒ·Á Áý´Ï´Ù. Áï, ÇÁ·ÓÆÛƼ ½ÃÆ®(ÇÁ·ÓÆÛƼ ÆäÀÌÁö)¸¦ Ç¥½ÃÇϱâ Àü¿¡ m_bTopmost¿¡ °ªÀ» ¼³Á¤ÇÏ¿© ÇÁ·ÓÆÛƼ ½ÃÆ®(ÇÁ·ÓÆÛƼ ÆäÀÌÁö)¸¦ ´ÝÀº ÈÄ¿¡ m_bTopmostÀÇ °ªÀ» ÃëµæÇÏ´Â °Í¿¡ ÀÇÇØ ÇÁ·ÓÆÛƼ ½ÃÆ®¿Í ¿ÜºÎÀÇ À©µµ¿ì°¡ üũ ¹Ú½º »óŸ¦ °øÀ¯ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¡¡µ¡ºÙ¿© CCustomPage Ŭ·¡½ºÀÇ ¸Þ¼¼Áö ¸Ê¿¡¼´Â base
classÀÎ CPropertyPageImplŬ·¡½º¿¡ÀÇ Ã¼ÀÎÀ» Ãß°¡Çϰí ÀÖ½À´Ï´Ù. CPropertyPageImplŬ·¡½º´Â ¸Þ¼¼Áö ¸ÊÀ» ÁغñÇϰí ÀÖ¾î À̰ÍÀº ÇÁ·ÓÆÛƼ ÆäÀÌÁö¿¡ ´ëÇÑ WM_NOTIFY ¸Þ¼¼Áö¸¦ ¸ÅÇÎ ÇÕ´Ï´Ù. WM_NOTIFY
¸Þ¼¼Áö Çڵ鷯¿¡¼´Â ÅëÁö Äڵ忡 ÀÇÇØ ´ÙÀ½°ú °°Àº ¸â¹ö ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.
|
ÅëÁö ÄÚµå |
¸â¹ö ÇÔ¼ö¸í |
|
PSN_SETACTIVE |
OnSetActive |
|
PSN_KILLACTIVE |
OnKillActive |
|
PSN_APPLY |
OnApply |
|
PSN_RESET |
OnReset |
|
PSN_QUERYCANCEL |
OnQueryCancel |
|
PSN_WIZNEXT |
OnWizardNext |
|
PSN_WIZBACK |
OnWizardBack |
|
PSN_WIZFINISH |
OnWizardFinish |
|
PSN_HELP |
OnHelp |
|
PSN_GETOBJECT |
OnGetObject |
|
PSN_TRANSLATEACCELERATOR |
OnTranslateAccelerator |
|
PSN_QUERYINITIALFOCUS |
OnQueryInitialFocus |
CPropertyPageImpl Ŭ·¡½ºÀÇ »ó¼Ó Ŭ·¡½º´Â ÀÌ·¯ÇÑ ¸â¹ö ÇÔ¼ö¸¦ ¿À¹ö¶óÀ̵å(override)ÇÏ´Â °Í¿¡ ÀÇÇØ ÇÁ·ÓÆÛƼ ÆäÀÌÁöÀÇ µ¿ÀÛÀ» Ä¿½ºÅÒ¸¶ÀÌÁî ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.
¡¡´ÙÀ½°ú °°ÀÌ CustomSheet.h ÆÄÀÏ ³»¿¡ CCustomSheet ¶ó°í ÇÏ´Â ÇÁ·ÓÆÛƼ ½ÃÆ® Ŭ·¡½º¸¦ Á¤ÀÇÇÕ´Ï´Ù.
|
// CustomSheet.h class CCustomPage : public CPropertyPageImpl<CCustomPage> { ... }; class CCustomSheet : public CPropertySheetImpl<CCustomSheet> { public: CCustomPage
m_pageCustom; CPropertyPage<IDD_PROPPAGE_VERSION>
m_pageVersion; // constructor¡¡ ¡¡ CCustomSheet(ATL::_U_STRINGorID title = (LPCTSTR)NULL, UINT
uStartPage = 0, HWND hWndParent
= NULL) : CPropertySheetImpl<CCustomSheet>(title,
uStartPage, hWndParent) { m_psh.dwFlags |= PSH_NOAPPLYNOW; AddPage(m_pageCustom); AddPage(m_pageVersion); } BEGIN_MSG_MAP_EX(CCustomSheet)
CHAIN_MSG_MAP(CPropertySheetImpl<CCustomSheet>) END_MSG_MAP() static int CALLBACK PropSheetCallback(HWND
hWnd, UINT uMsg, LPARAM lParam){ if(uMsg == PSCB_PRECREATE){
// ¹®¸Æ ÇïÇÁ ¹öưÀ» »èÁ¦
((LPDLGTEMPLATE)lParam)->style &=
~DS_CONTEXTHELP;
return 0; } return CPropertySheetImpl<CCustomSheet>::PropSheetCallback(hWnd, uMsg, lParam); } }; |
CCustomSheetŬ·¡½ºÀÇ constructorÀμö´Â CPropertySheet Ŭ·¡½ºÀÇ constructor Àμö¸¦ Âü°í·Î Çϰí ÀÖ½À´Ï´Ù. CCustomSheet Ŭ·¡½ºÀÇ constructor¿¡¼´Â ÇÁ·ÓÆÛƼ ½ÃÆ®ÀÇ [Àû¿ë] ¹öưÀ» ºñ Ç¥½Ã·Î Çϱâ À§Çؼ PSH_NOAPPLYNOW Ç÷¡±×¸¦ Ãß°¡Çϰí ÀÖ½À´Ï´Ù. ±×¸®°í, ¸â¹ö º¯¼ö·Î¼ ¼±¾ðÇÑ 2°³ÀÇ ÇÁ·ÓÆÛƼ ÆäÀÌÁö¸¦AddPage()¿¡ ÀÇÇØ Ãß°¡Çϰí ÀÖ½À´Ï´Ù. CCustomSheet Ŭ·¡½º¿¡¼´Â ÇÁ·ÓÆÛƼ ½ÃÆ®ÀÇ ¹®¸Æ ÇïÇÁ ¹öư( ŸÀÌÆ² ¹Ù À§ÀÇ[?]¹öư) À» ºñÇ¥½Ã·Î Çϱâ À§Çؼ PropSheetCallback() Äݹé ÇÔ¼ö¸¦ ¿À¹ö¶óÀ̵å(override) Çϰí ÀÖ½À´Ï´Ù. ÀÌ ÇÔ¼ö¿¡¼´Â PSCB_PRECREATE ¸Þ¼¼Áö°¡ º¸³»Á® ¿ÔÀ» ¶§¿¡ DS_CONTEXTHELP½ºÅ¸ÀÏÀ» »èÁ¦Çϰí ÀÖ½À´Ï´Ù. µ¡ºÙ¿© ½Ã½ºÅÛ¿¡ IE5 ÀÌ»óÀÌ ÀνºÅç µÇ°í ÀÖ´Â °æ¿ì´Â constructorÀ¸·Î PSH_NOCONTEXTHELP Ç÷¡±×¸¦ Ãß°¡ÇÏ´Â °ÍÀ¸·Î ¹®¸Æ ÇïÇÁ ¹öưÀ» ºñ Ç¥½Ã·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù.
¡¡´ÙÀ½¿¡ ³ªÅ¸³»´Â °ÍÀº CCustomSheet Ŭ·¡½º¸¦ »ç¿ëÇÏ´Â ¿¹ÀÔ´Ï´Ù.
|
// stdafx.h #include <atlbase.h> #include <atlapp.h> extern CAppModule _Module; #include <atlwin.h> #include <atlcrack.h> #include <atlmisc.h> #include <atlctrls.h> #include <atldlgs.h> // common dialog¸¦ »ç¿ëÇϱâ À§ÇØ(¶§¹®¿¡) |
|
// maindlg.h class CMainDlg : public CDialogImpl<CMainDlg> { public: enum { IDD = IDD_MAINDLG }; bool m_bTopmost; // ¸Þ¼¼Áö ¸Ê BEGIN_MSG_MAP_EX(CMainDlg)
MSG_WM_INITDIALOG(OnInitDialog) COMMAND_ID_HANDLER_EX(IDC_BUTTON_OPENDLG,
OnButtonOpenDlg)
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(IDR_MAINFRAME,
LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXICON), ::GetSystemMetrics(SM_CYICON)); SetIcon(hIcon, TRUE); // ÀÛÀº ¾ÆÀÌÄÜ ¼³Á¤
HICON hIconSmall = AtlLoadIconImage(IDR_MAINFRAME,
LR_DEFAULTCOLOR,
::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON)); SetIcon(hIconSmall, FALSE); m_bTopmost = false; return TRUE; } void OnButtonOpenDlg(UINT uNotifyCode,
int nID, HWND hWndCtl){ CCustomSheet sheet(_T("»ùÇÃ")); sheet.m_pageCustom.m_bTopmost = m_bTopmost; if(sheet.DoModal() == IDOK){
m_bTopmost = sheet.m_pageCustom.m_bTopmost;
SetWindowPos(m_bTopmost ? HWND_TOPMOST :
HWND_NOTOPMOST,
0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_SHOWWINDOW); } } void OnOK(UINT uNotifyCode, int nID, HWND hWndCtl){ EndDialog(nID); } void OnCancel(UINT uNotifyCode, int nID, HWND hWndCtl){ EndDialog(nID); } }; |
|
// CommDlg.cpp #include "stdafx.h" #include "resource.h" #include "CustomSheet.h" #include "maindlg.h" CAppModule _Module; int WINAPI _tWinMain(HINSTANCE
hInstance, HINSTANCE, LPTSTR lpCmdLine,
int nCmdShow) { HRESULT hRes = ::CoInitialize(NULL); ATLASSERT(SUCCEEDED(hRes)); ::DefWindowProc(NULL,
0, 0, 0L); AtlInitCommonControls(ICC_COOL_CLASSES
| ICC_WIN95_CLASSES); hRes
= _Module.Init(NULL, hInstance); ATLASSERT(SUCCEEDED(hRes)); int nRet = 0; // BLOCK: ¾îÇø®ÄÉÀÌ¼Ç ½ÇÇà { CMainDlg dlgMain; nRet = dlgMain.DoModal(); } _Module.Term(); ::CoUninitialize(); return nRet; } |
¡¡¿ì¼± ¸®¼Ò½º¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ´ÙÀ̾ó·Î±×¿¡ ¹öư ÄÁÆ®·ÑÀ» ¹èÄ¡ÇØ ¸®¼Ò½º ID¸¦ ´ÙÀ½°ú °°ÀÌ ÁöÁ¤ÇÕ´Ï´Ù.
|
ÄÁÆ®·Ñ¸í |
¸®¼Ò½º ID |
|
Ǫ½¬ ¹öư |
IDC_BUTTON_OPENDLG |
¡¡´ÙÀ½¿¡ stdafx.h ¿¡¼´Â atldlgs.h Çì´õ¸¦ ÀÎŬ·çµå ÇÕ´Ï´Ù.
¡¡CMainDlg Ŭ·¡½º¿¡¼´Â ¹öư¿ëÀÇ Ä¿¸àµå ¸Þ¼¼Áö Çڵ鷯 OnButtonOpenDlg()¸¦ Ãß°¡ÇØ °Å±â¼ CCustomSheet Ŭ·¡½ºÀÇ ÀνºÅϽº¸¦ ÀÛ¼ºÇØ DoModal()¿¡ ÀÇÇØ µ¶ÀÚÀûÀÎ ÇÁ·ÓÆÛƼ ½ÃÆ®¸¦ Ç¥½ÃÇÕ´Ï´Ù.
¡¡¸¶Áö¸·À¸·Î CommDlg.cpp ¿¡¼ maindlg.h Çì´õÀÇ ¾Õ¿¡ CustomSheet.h Çì´õ¸¦ ÀÎŬ·çµå ÇÕ´Ï´Ù.