Clock Dialog

 À̹ø¿¡ ¼Ò°³ÇÒ ÄÚµå´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¶§ ³ªÅ¸³¯ ½Ã°èÀÌ´Ù. ÇÁ·¹ÀÓ À©µµ¿ì Ŭ·¡½º¿¡¼­ ¸ð´Þ¸®½º ´ÙÀ̾ó·Î±× ¹Ú½º·Î ¸¸µé¾îÁø´Ù. ¸Þ´º¿¡ µû¶ó µðÁöÅаú ¾Æ³¯·Î±×ÀÇ µÎ °¡Áö ÇüŰ¡ ÀÖ´Ù.

1. ¿ì¼± ¼Ò½º¸¦ ¹Þ°í... clock.cpp¿Í clock.h ÆÄÀÏÀ» ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡

2. clock.rc ÆÄÀÏÀ» ¿­¾î Æ÷ÇÔµÈ ºñÆ®¸Ê, ¸Þ´º, ´ÙÀ̾ó·Î±× ÅÛÇø´À» ÇÁ·ÎÁ§Æ®¿¡ º¹»çÇØ ³Ö´Â´Ù.

3. ´Ù¸¥ ¸ðµâ¿¡ ³Ö¾îµµ »ó°ü¾øÁö¸¸ ¿©±â¼± ¸ÞÀÎ ÇÁ·¹ÀÓ Å¬·¡½º¿¡¼­ ¸¸µé¾îÁö°Ô ÇÒ °ÍÀ̰í, ¸Þ´º¿¡ ÀÌ ½Ã°è°¡ º¸À̰ųª ¾Èº¸ÀÌ°Ô ÇÏ´Â Ç׸ñÀ» Ãß°¡ÇÒ °ÍÀÌ´Ù. ¸ÞÀÎ ÇÁ·¹ÀÓÀÇ Çì´õÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ÀÎŬ·çµåÇÑ´Ù.

4. Ŭ·¡½ººä¿¡¼­ ¸ÞÀÎ ÇÁ·¹ÀÓ¿¡ ´ÙÀ½ µÎ º¯¼ö¸¦ Á¤ÀÇÇÑ´Ù.

        BOOL m_bVisible;
        CClockDialog* pClockDlg;    

5. ¸ÞÀÎ ÇÁ·¹ÀÓÀÇ »ý¼ºÀÚ¿Í ¼Ò¸êÀÚ¸¦ ´ÙÀ½°ú °°ÀÌ °íÄ£´Ù.

CMainFrame::CMainFrame()
{
        // TODO: add member initialization code here
        pClockDlg = new CClockDialog;
        m_bVisible = FALSE;    
// º¯¼ö ÃʱâÈ­
}

CMainFrame::~CMainFrame()
{
        if(pClockDlg->GetSafeHwnd()!=0)
                pClockDlg->DestroyWindow();
        delete pClockDlg;
}

6. OnCreate ÇÔ¼ö¿¡ ´ÙÀ½ ±½Àº ±Û¾¾ ÇÑ ÁÙÀ» »ðÀÔÇÑ´Ù.

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
        ...........................
        ........................... 
        // TODO: Delete these three lines if you don't want the toolbar to
        //  be dockable
        m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
        EnableDocking(CBRS_ALIGN_ANY);
        DockControlBar(&m_wndToolBar);

        pClockDlg->Create();    // ½Ã°è ´ÙÀ̾ó·Î±×¸¦ ³ªÅ¸³ª°Ô ÇÑ´Ù.

        return 0;
}

7. ½Ã°è ´ÙÀ̾ó·Î±×°¡ º¸À̰ųª ¾Èº¸ÀÌ°Ô ÇÏ´Â ¸Þ´º¸¦ Ãß°¡ÇÑ´Ù.

   ¸Þ´º - ½Ã°è º¸À̱â - ID : ID_CLOCK_VISIBLE
             ½Ã°è °¨Ãß±â - ID : ID_CLOCK_INVISIBLE

8. 7¹ø ¸Þ´º¿¡ ´ëÇÑ Çڵ鷯¸¦ ±¸ÇöÇÑ´Ù. ¾Ë´Ù½ÃÇÇ OnClockVisible() ÇÔ¼ö¿Í OnClockInvisible() ÇÔ¼ö´Â ½Ã°è ´ÙÀ̾ó·Î±×°¡ º¸À̰ųª ¾Èº¸ÀÌ°Ô ÇÏ´Â Çڵ鷯À̰í, ³ª¸ÓÁö ¹ØÀÇ µÎ ÇÔ¼ö´Â Ãß°¡ÇÑ ¸Þ´º°¡ ÇÊ¿äÇÒ ¶§¸¸ º¸À̵µ·Ï ÇÏ´Â Çڵ鷯ÀÌ´Ù.

void CMainFrame::OnClockVisible()
{
        // TODO: Add your command handler code here
        m_bVisible = FALSE;
        pClockDlg->Create();

}

void CMainFrame::OnClockInvisible()
{
        // TODO: Add your command handler code here
        m_bVisible = TRUE;
        pClockDlg->DestroyWindow();

}

void CMainFrame::OnUpdateClockVisible(CCmdUI* pCmdUI)
{
        // TODO: Add your command update UI handler code here
        pCmdUI->Enable(m_bVisible);
}

void CMainFrame::OnUpdateClockInvisible(CCmdUI* pCmdUI)
{
        // TODO: Add your command update UI handler code here
        pCmdUI->Enable(!m_bVisible);
}