TN025: ¹®¼­, ºä ¹× ÇÁ·¹ÀÓ ¸¸µé±â

ÀÌ ³ëÆ®´Â WinApps, DocTemplates, ¹®¼­, ÇÁ·¹ÀÓ ¹× º¸±â¿¡ ´ë ÇÑ »ý¼º ¹× ¼ÒÀ¯±Ç ¹®Á¦¸¦ ¼³¸íÇÕ´Ï´Ù. Visual c + + ÇÁ·Î±×·¡¸Ó °¡ÀÌµå ¿¡¼­ ´ëºÎºÐÀÇÀÌ Á¤º¸ ¹× ±âŸ Èï¹Ì·Î¿î »ý¼º ¹× ¼ÒÀ¯±Ç ¹®Á¦¸¦ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

WinApp

½Ã½ºÅÛ¿¡ ÇϳªÀÇ CWinApp °³Ã¼¡£

±×°ÍÀº Á¤ÀûÀ¸·Î ±¸¼º ÇÏ °í WinMainÀÇ ÇÁ·¹ÀÓ ¿öÅ©ÀÇ ³»ºÎ ±¸ÇöÀ¸·Î ÃʱâÈ­. ¾Æ¹«°Íµµ À¯¿ë ÇÒ CWinApp ¿¡¼­ ÆÄ»ý ÇØ¾ß ÇÕ´Ï´Ù (¿¹¿Ü: È®Àå Dll¿¡ ÀÖ´Â CWinApp ÀνºÅϽº ¸»¾Ò¾î¾ß ? ÃʱâÈ­ DllMain ¿¡¼­ ´ë½Å ¼öÇà µË´Ï´Ù)¡£

ÇÑ CWinApp °³Ã¼ ¸ñ·ÏÀ» ¹®¼­ ¼­½Ä ÆÄÀÏ ( CPtrList)¸¦ ¼ÒÀ¯ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ ´ç Çϳª ÀÌ»óÀÇ ¹®¼­ ¼­½Ä ÆÄÀÏÀÌÀÔ´Ï´Ù. Doctemplates´Â ÀϹÝÀûÀ¸·Î CWinApp::InitInstance ¿¡¼­ ¸®¼Ò½º ÆÄÀÏ (¹®ÀÚ¿­ ¹è¿­)¿¡¼­ ·Îµå¡£

pTemplate = »õ·Î¿î CDocTemplate (IDR_MYDOCUMENT,...);
AddDocTemplate(pTemplate)

ÇÑ CWinApp °³Ã¼´Â ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ÀÖ´Â ¸ðµç ÇÁ·¹ÀÓ Ã¢ÀÌ ¼ÒÀ¯ÇÕ´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀÇ ÁÖ ÇÁ·¹ÀÓ Ã¢Àº CWinApp::m_pMainWnd;¿¡ ÀúÀå µÇ¾î¾ß ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î m_pMainWnd ¿¡¼­ ¼³Á¤ÇÑ InitInstance ±¸Çö AppWizard ´ç½ÅÀ» À§ÇØ ±×°ÍÀ» ÇÒ ¼ö ¾ø½À´Ï´Ù°¡ ÇÏ´Â °æ¿ì. ´ÜÀÏ ¹®¼­ ÀÎÅÍÆäÀ̽º (SDI)ÀÌ ÇÑ CFrameWnd À¯ÀÏÇÑ ¹®¼­ ÇÁ·¹ÀÓ Ã¢ »Ó¸¸ ¾Æ´Ï¶ó ±âº» ÀÀ¿ë ÇÁ·Î±×·¥ ÇÁ·¹ÀÓ Ã¢ÀÇ ¿ªÇÒÀÔ´Ï´Ù. ´ÙÁß ¹®¼­ ÀÎÅÍÆäÀ̽º (MDI)´Â MDI ÇÁ·¹ÀÓ ( CMDIFrameWndŬ·¡½º)´Â ¸ðµç ÀÚ½Ä CFrameWnds¸¦ Æ÷ÇÔ ÇÏ´Â ÁÖ ÀÀ¿ë ÇÁ·Î±×·¥ ÇÁ·¹ÀÓ Ã¢ÀÔ´Ï´Ù. °¢ ÀÚ½Ä Ã¢ Ŭ·¡½º CMDIChildWnd ( CFrameWnd¿¡¼­ ÆÄ»ý) À̸ç ÀáÀçÀûÀ¸·Î ¸¹Àº ¹®¼­ ÇÁ·¹ÀÓ Ã¢ Áß Çϳª·Î ¿ª¡£

DocTemplates

CDocTemplate ÀÛ¼ºÀÚÀÇ ¹®¼­ °ü¸®ÀÚÀÔ´Ï´Ù. ±×°ÍÀº ¸¸µå´Â ¹®¼­ ¼ÒÀ¯ ÇÕ´Ï´Ù. °æ¿ì¿¡ ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ¾Æ·¡ ¼³¸í µÈ ¸®¼Ò½º ±â¹Ý ¹æ¹ýÀ» »ç¿ë ÇÏ ¿©, ±×°ÍÀº ÇÊ¿ä ÇÏÁö ¾Ê½À´Ï´Ù CDocTemplate ¿¡¼­ ÆÄ»ý¡£

SDI ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ë ÇÑ Å¬·¡½º´Â CSingleDocTemplate ÇϳªÀÇ ¿­¸° ¹®¼­ÀÇ ÃßÀû. MDI ÀÀ¿ë ÇÁ·Î±×·¥¿¡ ´ë ÇÑ CMultiDocTemplate Ŭ·¡½º´Â ÇöÀç ¿­·Á ÀÖ´Â ¸ðµç ¹®¼­´Â ¼­½Ä ÆÄÀÏ¿¡¼­ ¸¸µçÀÇ ¸ñ·Ï ( CPtrList)À» À¯Áö ÇÕ´Ï´Ù. CDocTemplate::AddDocument ¹× CDocTemplate::RemoveDocument °¡»ó ¸â¹ö¸¦ Ãß°¡ Çϰųª ¼­½Ä ÆÄÀÏ¿¡¼­ ¹®¼­¸¦ Á¦°Å ±â´ÉÀ» Á¦°ø ÇÕ´Ï´Ù. CDocTemplate CDocument Ä£±¸ À̹ǷΠ¿ì¸®°¡ ¹®¼­¸¦ ÀÛ¼º ÇÏ´Â ¹®¼­ ¼­½Ä ÆÄÀÏ¿¡ ´Ù½Ã °¡¸®Å°µµ·Ï º¸È£ CDocument::m_pDocTemplate ´Ù½Ã Æ÷ÀÎÅ͸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

CWinApp ¸ðµç ¹®¼­ ¼­½Ä ÆÄÀÏ¿¡ Äõ¸® ÇÏ´Â ±âº» OnFileOpen ±¸ÇöÀ» ó¸® ÇÕ´Ï´Ù. ÀÌ¹Ì ¿­·Á ÀÖ´Â ¹®¼­¿¡ ´ë ÇÑ º¸°í ÇÏ °í »õ ¹®¼­¸¦ ¿­·Á¸é Çü½ÄÀ» °áÁ¤À» Æ÷ÇÔ ÇÏ´Â ±¸Çö¡£

CDocTemplate °ü¸® ¹®¼­ ¹× ÇÁ·¹ÀÓ¿¡ ´ë ÇÑ UI ¹ÙÀεù¡£

CDocTemplate ¸í¸í µÇÁö ¾ÊÀº ¹®¼­ ¼öÀÇ Ä«¿îÆ®¸¦ À¯Áö¡£

CDocument

CDocument CDocTemplate ¿¡ ÀÇÇØ ¼ÒÀ¯ ÇÏ °í¡£

¹®¼­´Â ¹®¼­ ( CPtrList) º¸°í ( CView¿¡¼­ ÆÄ»ý) ÇöÀç ¿­·Á ÀÖ´Â º¸±â ¸ñ·Ï¡£

¹®¼­ ÇÒ »ý¼º/ÆÄ±« ÇÏÁö Ç÷¹ÀÌ, ÇÏÁö¸¸ ±×µéÀº ¸¸µé¾îÁø ÈÄ ¼­·Î ¿¬°á µÇ¾î ÀÖ½À´Ï´Ù. ¹®¼­¸¦ ´ÝÀ» ¶§ (Áï, ÅëÇØ ÆÄÀÏ/´Ý±â), ¸ðµç ¿¬°á µÈ ºä¸¦ ´ÝÈü´Ï´Ù. ¹®¼­¸¦ ´ÝÀ» °Í ÀÌ´Ù (Áï, â/´Ý±â) ¹®¼­¿¡¼­ ¸¶Áö¸· º¸±â¸¦ ´ÝÀ» ¶§¡£

CDocument::AddView, RemoveView ÀÎÅÍÆäÀ̽º´Â ¸ñ·Ï º¸±â¸¦ À¯Áö ÇÏ´Â µ¥ »ç¿ë µË´Ï´Ù. CDocument CView Ä£±¸ À̹ǷΠ¿ì¸® CView::m_pDocument ´Ù½Ã Æ÷ÀÎÅ͸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

CFrameWnd

CFrameWnd (ÇÁ·¹ÀÓ) MFC 1.0¿¡¼­¿Í °°Àº ¿ªÇÒÀ» ÇÑ´Ù ÇÏÁö¸¸ Áö±ÝÀº CFrameWnd Ŭ·¡½º »õ Ŭ·¡½º¸¦ ÆÄ»ý ÇÏÁö ¾Ê°í ¸¹Àº °æ¿ì¿¡ »ç¿ë Çϵµ·Ï ¼³°è µÇ¾ú½À´Ï´Ù. ±×·¡¼­ ¸¹Àº Ç¥ÁØ ¸í·É ÀÌ¹Ì ±¸Çö CMDIFrameWnd ¹× CMDIChildWnd ÆÄ»ýµÈ Ŭ·¡½ºµµ Çâ»ó µË´Ï´Ù.

CFrameWnd ÇÁ·¹ÀÓÀÇ Å¬¶óÀÌ¾ðÆ® ¿µ¿ª¿¡ âÀ» ¸¸µå´Â ÀÏÀ» ´ã´ç ÇÕ´Ï´Ù. ÀϹÝÀûÀ¸·Î °Å±â¿¡ ÇÑ Ã¢ ÇÁ·¹ÀÓÀÇ Å¬¶óÀÌ¾ðÆ® ¿µ¿ªÀ» ä¿ì´Â¡£

MDI ÇÁ·¹ÀÓ Ã¢ÀÇ Å¬¶óÀÌ¾ðÆ® ¿µ¿ª Â÷·Ê·Î ¸ðµç MDI ÀÚ½Ä ÇÁ·¹ÀÓ Ã¢ÀÇ ºÎ¸ð´Â MDICLIENT Á¦¾î ä¿öÁý´Ï´Ù. SDI ÇÁ·¹ÀÓ Ã¢ÀÌ ³ª MDI ÀÚ½Ä ÇÁ·¹ÀÓ Ã¢¿¡ ´ë ÇÑ Å¬¶óÀÌ¾ðÆ® ¿µ¿ª ÀϹÝÀûÀ¸·Î °¡µæ CView-window °³Ã¼¸¦ ÆÄ»ý ÇÕ´Ï´Ù. CSplitterWndÀÇ °æ¿ì º¸±âÀÇ Å¬¶óÀÌ¾ðÆ® ¿µ¿ª CSplitterWnd window °³Ã¼¿Í CView°¡µæ-ÆÄ»ýµÈ window °³Ã¼ (ÇϳªÀÇ ºÐÇÒ Ã¢ ´ç) CSplitterWnd ÀÇ ÀÚ½Ä Ã¢À¸·Î ¸¸µé¾îÁý´Ï´Ù¡£

±â¼ú ³ëÆ® ¹øÈ£·Î |nbsp; Ä«Å×°í¸®º° ±â¼ú ³ëÆ®(&N)

Index