< ÇÁ·ÓÆÛƼ ½ÃÆ® >

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 Çì´õ¸¦ ÀÎŬ·çµå ÇÕ´Ï´Ù.