ÀÓÀÇÀÇ Å¬·¡½ºÀÇ Æ÷ÀÎÅÍ ¾ò±â
¾Õ¿¡¼ SDI¿¡¼ °¢ Ŭ·¡½ºÀÇ Æ÷ÀÎÅ͸¦ ¾ò´Â °ÍÀº ÇØ º¸¾Ò½À´Ï´Ù. À̹ø¿£ MDI¿¡¼ ÀÌ·± ÀÛ¾÷À» ÇØ º¸µµ·Ï ÇÏÁÒ.
¸ÕÀú SDI¿¡¼ÀÇ ÀÛ¾÷À» ÂüÁ¶ÇϽñ⠹ٶø´Ï´Ù. SDI¿Í MDI´Â °ü·ÃµÇ´Â ºÎºÐÀÌ ¸¹À¸´Ï±î¿ä.
![]()
ÀϹÝÀûÀÎ MDI ÇÁ·Î±×·¥¿¡¼.
1.¾ÖÇø®ÄÉÀÌ¼Ç Å¬·¡½ºÀÇ Æ÷ÀÎÅ͸¦ ¾òÀ» ¶§
CWinApp* AfxGetApp()
ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. À̰ÍÀº SDI¿¡¼¿Í µ¿ÀÏÇÕ´Ï´Ù. App Ŭ·¡½º´Â MDIµç SDIµç ÇÁ·Î±×·¥ ³»¿¡¼´Â Çϳª»ÓÀ̴ϱî¿ä. ´ÙÀ½Ã³·³ »ç¿ëÇϸé pApp´Â ¾ÖÇø®ÄÉÀÌ¼Ç Å¬·¡½ºÀÇ ÀνºÅϽº Æ÷ÀÎÅ͸¦ °¡¸®Å°°Ô µË´Ï´Ù.
CTestApp *pApp = (CTestApp *)AfxGetApp();
2. CMDIFrameWndÀÇ ÆÄ»ýŬ·¡½ºÀÎ ¸ÞÀÎ ÇÁ·¹ÀÓ Å¬·¡½ºÀÇ Æ÷ÀÎÅ͸¦ ¾òÀ» ¶§
CWnd* AfxGetMainWnd()
ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. »ç¿ë¹ýÀº SDI¿¡¼¿Í µ¿ÀÏÇÕ´Ï´Ù.
CMainFrame *pFr = (CMainFrame *)AfxGetMainWnd();
ÀÌ·¸°Ô ½áÁØ ´ÙÀ½¿¡´Â pFrÀº ¸ÞÀÎ ÇÁ·¹ÀÓ Å¬·¡½ºÀÇ ÀνºÅϽº Æ÷ÀÎÅ͸¦ °¡¸®Å°°Ô µË´Ï´Ù.
3. CMDIChildWndÀÇ ÆÄ»ýŬ·¡½ºÀÎ ÀÚ½Ä ÇÁ·¹ÀÓ À©µµ¿ìÀÇ Æ÷ÀÎÅ͸¦ ¾òÀ» ¶§
(a) Ȱ¼ºÈµÈ ÀÚ½Ä ÇÁ·¹ÀÓ À©µµ¿ìÀÇ Æ÷ÀÎÅ͸¦ ¾òÀ» ¶§
virtual CFrameWnd* GetActiveFrame( );
ÇÔ¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. MSDN¿¡ ½Ç·ÁÀÖ´Â ÀÌ ÇÔ¼öÀÇ ¸®Åϰª¿¡ ´ëÇÑ ¼³¸íÀ» º¸¸é, ¾ÖÇø®ÄÉÀ̼ÇÀÌ SDIÀ̰ųª MDI ÇÁ·¹ÀÓ À©µµ¿ì¿¡ Ȱ¼ºÈµÈ µµÅ¥¸ÕÆ®°¡ ¾øÀ» ¶§, ¸®ÅϰªÀº ¹¬½ÃÀûÀÎ this Æ÷ÀÎÅͰ¡ µÈ´Ù°í Çϳ׿ä.
»ç¿ë¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù.
CMDIChildWnd* pChild = (CMDIChildWnd *)AfxGetMainWnd()->GetActiveFrame();
4. ºä / µµÅ¥¸ÕÆ® Ŭ·¡½ºÀÇ Æ÷ÀÎÅ͸¦ ¾òÀ» ¶§
SDI¿¡¼ ±¸ÇÑ °Í°ú ¸¶Âù°¡Áö ¹æ¹ýÀ» »ç¿ëÇÑ´Ù. SDI¿¡¼´Â ¸ÞÀÎ ÇÁ·¹ÀÓÀÇ Æ÷ÀÎÅ͸¦ ¾ò¾î GetActiveView() ¶Ç´Â GetActiveDocument() ÇÔ¼ö¸¦ »ç¿ëÇßÁö¸¸, MDI¿¡¼´Â Â÷Àϵå ÇÁ·¹ÀÓÀÇ Æ÷ÀÎÅ͸¦ ¾ò¾î °Å±â¼ GetActiveView() / GetActiveDocument() ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µÈ´Ù. »ç¿ë¹ýÀº °ÅÀÇ µ¿ÀÏÇÏ´Ù.
MDI¿¡¼µµ SDI¿Í ¸¶Âù°¡Áö·Î µµÅ¥¸ÕÆ®³ª ºä°¡ ¿©·¯ °³°¡ ¿¬°áµÉ ¼ö ÀÖÀ¸¹Ç·Î ±×Á¡¸¸ ÁÖÀÇÇØ ÁÖ¸é µÈ´Ù.
»ç¿ë¹ýÀº ´ÙÀ½°ú °°´Ù.
CMDIChildWnd* pChild = (CMDIChildWnd *)AfxGetMainWnd()->GetActiveFrame();
// ºä Ŭ·¡½ºÀÇ Æ÷ÀÎÅÍ ¾ò±â
CTestView *pView = (CTestView *)pChild->GetActiveView();
// µµÅ¥¸ÕÆ® Ŭ·¡½ºÀÇ Æ÷ÀÎÅÍ ¾ò±â
CTestDoc *pDoc = (CTestDoc *)pChild->GetActiveDocument();
- the end of this article -