Clock Dialog
À̹ø¿¡ ¼Ò°³ÇÒ ÄÚµå´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ ¶§ ³ªÅ¸³¯ ½Ã°èÀÌ´Ù. ÇÁ·¹ÀÓ À©µµ¿ì Ŭ·¡½º¿¡¼ ¸ð´Þ¸®½º ´ÙÀ̾ó·Î±× ¹Ú½º·Î ¸¸µé¾îÁø´Ù. ¸Þ´º¿¡ µû¶ó µðÁöÅаú ¾Æ³¯·Î±×ÀÇ µÎ °¡Áö ÇüŰ¡ ÀÖ´Ù.
1. ¿ì¼± ¼Ò½º¸¦ ¹Þ°í... clock.cpp¿Í clock.h ÆÄÀÏÀ» ÇÁ·ÎÁ§Æ®¿¡ Ãß°¡
2. clock.rc ÆÄÀÏÀ» ¿¾î Æ÷ÇÔµÈ ºñÆ®¸Ê, ¸Þ´º, ´ÙÀ̾ó·Î±× ÅÛÇø´À» ÇÁ·ÎÁ§Æ®¿¡ º¹»çÇØ ³Ö´Â´Ù.
3. ´Ù¸¥ ¸ðµâ¿¡ ³Ö¾îµµ »ó°ü¾øÁö¸¸ ¿©±â¼± ¸ÞÀÎ ÇÁ·¹ÀÓ Å¬·¡½º¿¡¼ ¸¸µé¾îÁö°Ô ÇÒ °ÍÀ̰í, ¸Þ´º¿¡ ÀÌ ½Ã°è°¡ º¸À̰ųª ¾Èº¸ÀÌ°Ô ÇÏ´Â Ç׸ñÀ» Ãß°¡ÇÒ °ÍÀÌ´Ù. ¸ÞÀÎ ÇÁ·¹ÀÓÀÇ Çì´õÆÄÀÏ¿¡ ´ÙÀ½°ú °°ÀÌ ÀÎŬ·çµåÇÑ´Ù.
#include "Clock.h"
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);
}