º£Å¸ 2 ¹ßÇ¥ ÈÄ ±æÁö´Â ¾Ê¾ÒÁö¸¸ ÁöÀεé°ú °Ô½ÃÆÇÀ» ÅëÇØ ¾à°£ÀÇ Å×½ºÆ®¸¦ °ÅÃÆ´Ù. ¸¹Àº º¸°í°¡ µé¾î¿ÀÁö´Â ¾Ê¾ÒÁö¸¸ Ä¡¸íÀûÀÎ ¹®Á¦¸¦ ÀÏÀ¸Å°´Â ¹ö±×°¡ ÀÖ¾î ¸î °¡Áö¸¦ ¼öÁ¤Çß´Ù. Á¤½Ä ¹öÀü ¹ßÇ¥Àü¿¡ ¼Ò½º¸¦ Á» ´õ ±ò²ûÇÏ°Ô Á¤¸®ÇÏ·Á°í ÇßÀ¸³ª ½Ã°£ ¹®Á¦·Î ÀÎÇØ ±×·¸°Ô±îÁö´Â ÇÏÁö ¸øÇØ ¾Æ½±´Ù.
ÆíÁýâÀ» ºÐÇÒÇØ ³õ°í ´Ù¸¥ ÇÁ·Î±×·¥À¸·Î Æ÷Ä¿½º¸¦ ¿Å°å´Ù°¡ ´Ù½Ã ¿À°Å³ª ¾Æ´Ï¸é ´ç±Ù ³»ÀÇ ´Ù¸¥ âÀ¸·Î À̵¿ÇÑ »óÅ¿¡¼ ºÐÇÒÀ» Ãë¼ÒÇÏ¸é ´ç±ÙÀÌ Áï½Ã ´Ù¿îµÈ´Ù. ÀÌ ¹®Á¦´Â ¹ß»ý ¿øÀÎÀÌ ´Ù¼Ò º¹ÀâÇѵ¥ ºä°¡ Æı«µÉ ¶§ WM_SETFOCUS ¸Þ½ÃÁö¸¦ ÇÑ ¹ø ´õ ¹Þ±â ¶§¹®ÀÌ´Ù. ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â OnSetFocus¿¡¼ ij·µÀÇ À§Ä¡¸¦ °áÁ¤Çϱâ À§ÇØ SetCaretÀ» È£ÃâÇϴµ¥ À̶§ Á¤·Ä Á¤º¸°¡ ÀÌ¹Ì Æı«µÇ¾î ¹ö·È±â ¶§¹®¿¡ ¹«ÇÑ ·çÇÁ¿¡ ºüÁö°Å³ª ¿Àµ¿ÀÛÀ» ÇÏ´Â °ÍÀÌ´Ù. ºäÀÇ OnDestroyÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
void CApiEditText::OnDestroy(HWND hWnd)
{
if (arHanWidth) {
free(arHanWidth);
arHanWidth=NULL;
}
if (pLine) {
free(pLine);
pLine=NULL;
}
if (hBit) {
DeleteObject(hBit);
hBit=NULL;
}
SetParser(-1);
if (hMainFont) {
DeleteObject(hMainFont);
}
free(lpDx);
}
¹öÆÛ¸¦ Á¤¸®ÇÏ°í Æ÷ÀÎÅÍ º¯¼ö¿¡ NULLÀ» ´ëÀÔÇÏ¿© È®½ÇÈ÷ Á¤¸®µÇ¾úÀ½À» ±â·ÏÇØ ³õ´Â´Ù. ±×¸®°í OnSetFocus¿¡¼´Â ÀÌ Æ÷ÀÎÅÍÀÇ À¯È¿¼ºÀ» Á¡°ËÇÑ´Ù.
void CApiEditText::OnSetFocus(HWND hWnd, HWND hwndOldFocus)
{
// Â÷Àϵ尡 Æ÷Ä¿½º¸¦ °¡Áø »óÅ¿¡¼ Æı«µÉ ¶§ ºÎ¸ð°¡ Á¤¸®µÇ´Â Áß¿¡
// WM_SEFOCUS°¡ ³¯¶ó¿À´Âµ¥ À̶§´Â ¹«½ÃÇÑ´Ù.
if (pLine == NULL) return;
SetCaret(FALSE,FALSE);
....
pLineÀÌ NULLÀ̸é ÀÚ½ÅÀÌ ÀÌ¹Ì Á¤¸®µÈ »óÅÂÀ̹ǷΠij·µÀÇ À§Ä¡¸¦ ´Ù½Ã °è»êÇÒ ÇÊ¿ä¾øÀÌ ±×³É ¸®ÅÏÇÏ¸é µÈ´Ù. Æı«½Ã¿¡ ºÒÇÊ¿äÇÑ ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾ÊÀ½À¸·Î½á ´Ù¿îµÇ´Â »çŸ¦ ¸·´Â´Ù.
´ç±ÙÀº º°µµÀÇ ¼³Ä¡ ÇÁ·Î±×·¥ÀÌ ¾ø°í ÀÚ½ÅÀÌ ÃÖÃÊ ½ÇÇàµÉ ¶§ ÇÊ¿äÇÑ È¯°æÀ» ¸¸µç´Ù. ±×·¯´Ù º¸´Ï ¼³Ä¡¸¦ ÇØÁ¦ÇÏ´Â ÇÁ·Î±×·¥µµ µû·Î ¾ø°í µµ±¸ ¸Þ´º¸¦ ÅëÇØ ¼³Ä¡¸¦ ÇØÁ¦ÇÑ´Ù. ÀÌ ¹æ¹ý´ë·Î ¼³Ä¡ ¹× ÇØÁ¦ÇÏ¸é ½Ã½ºÅÛ¿¡ ¾Æ¹« ¹®Á¦°¡ ¾øÀ¸³ª °¡²û ½ÇÇà ÆÄÀϸ¸ »èÁ¦ÇÏ´Â »ç¶÷µéÀÌ ÀÖ´Ù. ÀÌ °æ¿ì ´ç±Ù ½ÇÇà ÆÄÀÏÀº »èÁ¦µÇ¾úÁö¸¸ DgCmd.dllÀº °è¼Ó Ž»ö±âÀÇ Æ˾÷ ¸Þ´º¿¡ "´ç±ÙÀ¸·Î ÆíÁý" Ç׸ñÀ» Ç¥½ÃÇÑ´Ù.
ÀÌ´Â ¸í¹éÈ÷ »ç¿ëÀÚÀÇ ½Ç¼öÀÌÁö¸¸ ÀÌ·± °æ¿ì¶óµµ »ç¿ëÀÚµéÀÌ ºÒÆíÀ» ´À³¢Áö ¾Êµµ·Ï ¹è·ÁÇÏ´Â °ÍÀÌ ÁÁÀ» °Í °°´Ù. ¼³Ä¡°¡ ÇÊ¿ä¾ø´Â ´Üµ¶ ½ÇÇà ÆÄÀÏÀ̹ǷΠÀÌ ÆÄÀÏÀ» Áö¿ì¸é ¼³Ä¡°¡ ÇØÁ¦µÉ °ÍÀ̶ó°í ±â´ëÇÏ´Â °Íµµ ¹«¸®´Â ¾Æ´Ñ °Í °°´Ù. º¹»ç¸¸ Çؼ ¾µ ¼ö ÀÖ´Â ÇÁ·Î±×·¥À̹ǷΠ»èÁ¦¸¸ ÇÏ¸é ±ú²ýÇÏ°Ô Áö¿öÁö±â¸¦ ¹Ù¶ó´Â °ÍÀÌ´Ù. ÀÌ ±â´ë¿¡ ºÎÈïÇϱâ À§ÇØ DgCmd.dllÀ» ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
HRESULT CDgCmdObj::QueryContextMenu (HMENU hmenu, UINT uMenuIndex, UINT uidFirstCmd,
UINT uidLastCmd, UINT uFlags )
{
// ´õºí Ŭ¸¯¿¡ ´ëÇؼ´Â ¾Æ¹« µ¿ÀÛµµ ÇÏÁö ¾Ê´Â´Ù.
if (uFlags & CMF_DEFAULTONLY) {
return MAKE_HRESULT(SEVERITY_SUCCESS,FACILITY_NULL,0);
}
// ´ç±ÙÀÌ »èÁ¦µÇ¾úÀ¸¸é ¸Þ´º¸¦ Ãâ·ÂÇÏÁö ¾Ê´Â´Ù.
// Á¤»óÀûÀÎ ¹æ¹ýÀ¸·Î ¼³Ä¡ ÇØÁ¦ÇÏÁö ¾Ê°í ½ÇÇà ÆÄÀϸ¸ »èÁ¦ÇÏ´Â »ç¶÷µéÀ» À§ÇØ ÀÌ Ã³¸®°¡ ÇÊ¿äÇÏ´Ù.
TCHAR InstPath[MAX_PATH];
BOOL bExe=TRUE;
SHRegReadString(SHCU,"Software\\Miyoungsoft\\Dangeun\\1.2\\Setting",
"InstPath","",InstPath,MAX_PATH);
if (lstrlen(InstPath) != 0) {
HANDLE hFile;
hFile=CreateFile(InstPath,0,0,NULL,OPEN_EXISTING,0,NULL);
if (hFile == INVALID_HANDLE_VALUE) {
bExe=FALSE;
}
CloseHandle(hFile);
} else {
bExe=FALSE;
}
if (bExe == FALSE) {
return MAKE_HRESULT(SEVERITY_SUCCESS,FACILITY_NULL,0);
}
// ¸Þ´º »ðÀÔ
InsertMenu (hmenu,uMenuIndex,MF_BYPOSITION,uidFirstCmd,TEXT("´ç±ÙÀ¸·Î ÆíÁý"));
return MAKE_HRESULT(SEVERITY_SUCCESS,FACILITY_NULL,1 );
}
Æ˾÷ ¸Þ´º¸¦ ¿±â Àü¿¡ ´ç±Ù ½ÇÇà ÆÄÀÏÀÌ Á¦´ë·Î Àß ÀÖ´ÂÁö È®ÀÎÇÏ°í ±×·¸Áö ¾Ê´Ù¸é Æ˾÷ ¸Þ´º¸¦ »ðÀÔÇÏÁö ¾Ê´Â´Ù. ¹°·Ð ÀÌ·¸°Ô ÇÏ´õ¶óµµ ·¹Áö½ºÆ®¸®¿¡ ³²Àº Â±âµéÀÌ »èÁ¦µÇÁö ¾Ê´Â ¹®Á¦°¡ ÀÖÁö¸¸ Àû¾îµµ °ÑÀ¸·Î º¸±â¿¡´Â ´ç±ÙÀÇ Á¸Àç°¡ »ç¶óÁø °Íó·³ º¸ÀÏ °ÍÀÌ´Ù. DgCmd.dllÀº ´ç±Ù ½ÇÇà ÆÄÀÏÀÇ Ä¿½ºÅÒ ¸®¼Ò½º·Î Æ÷ÇԵǾî ÀÖÀ¸¹Ç·Î ¸®¼Ò½º¸¦ ±³Ã¼ÇÑ ÈÄ ÀçÄÄÆÄÀÏÇØ¾ß ÇÑ´Ù. ±×¸®°í ´ç±ÙÀ» ¼³Ä¡ ÇØÁ¦ÇÏ°í ÀçºÎÆÃÇÑ ÈÄ ´Ù½Ã ¼³Ä¡ÇØ¾ß ÇÑ´Ù. ÀÌ¹Ì ´ç±ÙÀ» ¼³Ä¡ÇØ ³õÀº »ç¿ëÀÚ¿¡°Ô´Â ´Ù¼Ò ºÒÆíÇÑ ¾÷±×·¹À̵尡 µÇ°ÚÁö¸¸ »õ·Î ¼³Ä¡ÇÏ´Â »ç¶÷Àº ½ÇÇุ ÇÏ¸é µÈ´Ù.
1.2 ¹öÀüºÎÅÍ µðÆúÆ® ¿É¼ÇÀ» Á¶Á¤ÇÏ¿© ÀÚµ¿ °³Çà »óÅ·Π½ÃÀÛÇϵµ·Ï ¼öÁ¤ÇÑ ¹Ù ÀÖ´Ù. ±×·±µ¥ ÀÌ ¼öÁ¤ÀÌ ¿Ïº®ÇÏÁö ¾Ê¾Æ ¿É¼Ç¸¸ ÀÚµ¿ °³ÇàÀ¸·Î ¹Ù²î°í ¼öÆò ½ºÅ©·Ñ ¹Ù´Â °è¼Ó µ¿ÀÛÇÏ´Â ºÒÀÏÄ¡°¡ ¹ß»ýÇß´Ù. ±×·¡¼ ¹®¼¸¦ ¿¬ ÈÄ ¼öÆòÀ¸·Î À̵¿ÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ·¸°Ô µÇ¸é ij·µÀÌ º¸ÀÌÁö ¾Ê´Â »óÅ°¡ µÉ ¼öµµ ÀÖ´Ù. SetWrap ÇÔ¼ö¿¡´Â ÀÚµ¿ °³Çà »óÅ°¡ µÇ¸é ¼öÆò ½ºÅ©·Ñ ¹Ù°¡ »ç¿ë ±ÝÁöµÇ´Â Äڵ尡 Á¦´ë·Î ÀÛ¼ºµÇ¾î ÀÖ´Ù. ±×·¯³ª ÃʱâȽÿ¡´Â Á¤·Ä Á¤º¸°¡ ¾øÀ¸¹Ç·Î ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÏÁö ¾Ê°í nWrap º¯¼ö°ª¸¸ º¯°æÇÑ´Ù. ¿©±â¿¡ ´ÙÀ½ Äڵ带 Ãß°¡ÇÑ´Ù.
void CApiEditText::SetDefaultSetting()
{
if (pLine) {
SetLineRatio(120);
SetWrap(2);
SetTabWidth(4);
} else {
LineRatio=120;
nWrap=2;
EnableScrollBar(hHorzScroll,SB_CTL,ESB_DISABLE_BOTH);
TabWidth=4;
}
¼öÆò ½ºÅ©·Ñ ¹Ù¸¦ óÀ½ºÎÅÍ »ç¿ë ±ÝÁö½ÃÄ×´Ù. ÀÌÈĺÎÅÍ´Â ÀÚµ¿ °³Çà ¿©ºÎ¿¡ µû¶ó ¼öÆò ½ºÅ©·Ñ ¹ÙÀÇ »ç¿ë °¡´É¼ºÀÌ °áÁ¤µÈ´Ù. µðÆúÆ® ¿É¼ÇÀ» °©Àڱ⠺¯°æÇÔÀ¸·Î½á »ý±ä ¹®Á¦Àε¥ º¸´Ù½ÃÇÇ µðÆúÆ® ¿É¼ÇÀ» °áÁ¤ÇÏ´Â °Íµµ Âü ½±Áö ¾ÊÀº ÀÏÀÌ´Ù.
ÀÌÁ¦ º£Å¸°¡ ¾Æ´Ñ Á¤½Ä ¹öÀüÀÌ µÉ °ÍÀ̹ǷΠŸÀÌƲ ¹ÙÀÇ ¹öÀü Ç¥½Ã¿¡¼ Beta ¹®±¸¸¦ »èÁ¦ÇÏ°í ¹öÀü ¹øÈ£¸¦ Ç¥½ÃÇÑ´Ù.
hWnd=CreateWindow(lpszClass,"´ç±Ù 1.2",WS_OVERLAPPEDWINDOW | WS_VISIBLE |
WS_CLIPCHILDREN,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
NULL,(HMENU)NULL,hInstance,NULL);
¶ÇÇÑ ÇÁ·Î±×·¥ ¼Ò°³ ´ëÈ»óÀÚÀÇ ½ºÅÂƽ¿¡µµ º£Å¸ 2¸¦ Á¤½Ä ¹öÀüÀ¸·Î º¯°æÇÑ´Ù. ¿©±â±îÁö ÀÛ¾÷Çϸé Á¤½Ä ¹öÀü 1.2°¡ ¸¸µé¾îÁø´Ù.
ÀÌ»óÀ¸·Î Áö·çÇß´ø ´ç±Ù ÇÁ·ÎÁ§Æ® ½Ç½ÀÀ» ¸¶Ä£´Ù. °³ÀÎÀûÀ¸·Î ±²ÀåÈ÷ ¸¹Àº °øÀ» µé¿© °³¹ßÇß°í ½Ã°£µµ ¸¹ÀÌ °É·ÈÁö¸¸ ¾ÖÃÊ¿¡ ±â´ëÇß´ø °Í¸¸Å ¸¹Àº »ç¶÷µéÀÌ ÀÌ ÇÁ·ÎÁ§Æ®¸¦ ÂüÁ¶ÇÏÁö´Â ¾Ê´Â °Í °°´Ù. ¼Ò½ºÀÇ Çü½ÄÀÌ ±×´ÙÁö ±ò²ûÇÏÁö ¸øÇÏ°í ¼ÖÁ÷È÷ ³²ÀÌ ¸¸µç Äڵ带 ±×´ë·Î µû¶óÇÏ´Â ½ÄÀÇ ½Ç½ÀÀº °áÄÚ ½±Áö°¡ ¾Ê´Ù. ±×·¯³ª ÀÌ·± ¹®¼Á¶Â÷µµ ¾ø´Ù¸é ±×¾ß¸»·Î ¸Ç¶¥¿¡ Çìµù(MDH)ÇØ¾ß Çϴµ¥ Àû¾îµµ ±âº» ±â¼úÀ» Àü´ÞÇϴµ¥´Â ³ª¸§´ë·Î ¸ñÇ¥¸¦ ÀÌ·çÁö ¾Ê¾Ò³ª ½º½º·Î À§¾ÈÇÑ´Ù.
´ç±Ù 1.2´Â ¾ÆÁ÷±îÁöµµ ½Ç½À ÇÁ·ÎÁ§Æ®ÀÇ ÇüŸ¦ ¶ì°í Àֱ⠶§¹®¿¡ ½ÇÁ¦ »ç¿ëÇϱ⿡´Â ¸ðÀÚ¶õ ±â´ÉµéÀÌ ¸¹°í ÃæºÐÇÑ °ËÁõÀ» ¹ÞÁö ¸øÇ߱⠶§¹®¿¡ ¾î»öÇÑ ±â´Éµéµµ ÀÖ´Ù. ¾Ë°í ÀÖ´Â ¹ö±×µµ ¸î °¡Áö ÀÖ°í ÁÁÁö ¸øÇÑ ±¸Á¶µµ ¿©±â Àú±â¿¡ ³²¾Æ ÀÖ´Ù. ÀÌ´Â Á¦ÀÛÀÚÀÇ ´É·ÂÀÌ ºÎÁ·ÇÑ °ÍÀÌ °¡Àå Å« ¿øÀÎÀÌ°ÚÁö¸¸ ¼³¸í °¡´ÉÇÑ ¼Ò½º¸¦ ¸¸µé·Á°í ÇÏ´Ù º¸´Ï ¹®Á¦¸¦ ¾Ë¸é¼µµ ÇԺηΠ¼öÁ¤ÇÏÁö ¸øÇÏ´Â ºÒ°¡ÇÇÇÑ ÀÌÀ¯µµ ÀÖ´Ù.
1.2 ¹öÀüÀ» ¸¶Áö¸·À¸·Î ¹®¼È´Â ´õ ÀÌ»ó ÇÏÁö ¾Ê´Â´Ù. Äڵ差ÀÌ ´Ã¾î ÀÌÁ¦ À¯Áö, º¸¼ö¸¦ ÇÏ´Â °Íµµ ½±Áö ¾ÊÀº ÀÏÀÌ µÇ¾î ¹ö·È°í »ç¼ÒÇÑ ±â´É Çϳª¸¦ °íÄ¡´õ¶óµµ ¿©±â Àú±â ¼Õµ¥¾ß ÇÒ °÷ÀÌ ¸¹¾Æ ¹®¼È¸¦ ÇÏ´Â Àǹ̰¡ ¾ø´Ù. ¶ÇÇÑ ´õ ÀÌ»óÀÇ Ä£ÀýÇÑ ¹®¼¸¦ ¿øÇÏ´Â »ç¶÷µµ ¾øÀ» °Í °°´Ù. »ç½Ç ÀÌ Á¤µµ ±Ô¸ðÀÇ ÇÁ·ÎÁ§Æ®¸¦ ºÐ¼®ÇÒ ´É·ÂÀÌ µÇ´Â »ç¶÷Àº ¼Ò½º¸¸ °ø°³Çصµ ÃæºÐÇÏ°í ±×·¸Áö ¾ÊÀº »ç¶÷Àº ¹®¼¿Í ¼³¸í±îÁö °çµé¿©µµ ÀÌÇØÇϱâ Èûµé °ÍÀÌ´Ù.
±×·¯³ª ÇÁ·ÎÁ§Æ®´Â °è¼Ó À¯ÁöÇÏ¸ç ¼öÁ¤µÈ °á°ú¸¦ Áö¼ÓÀûÀ¸·Î ¹ßÇ¥ÇÒ °ÍÀÌ´Ù. ÇÁ·ÎÁ§Æ®ÀÇ º¯Ãµ °úÁ¤À» »ó¼¼ÇÏ°Ô ±â¼úÇÏÁö´Â ¾Ê´õ¶óµµ ¾î¶°ÇÑ ±â¼úÀÌ »ç¿ëµÇ¾ú´ÂÁö´Â °¡´ÉÇÏ´Ù¸é ¹®¼ÈÇÒ °ÍÀ̸ç ÅؽºÆ® ÆíÁý ÄÁÆ®·Ñ(ApiEdit)´Â Àç»ç¿ë °¡´ÉÇÑ ÇüÅ·ΠÀÛ¼ºÇÏ¿© ´©±¸³ª ¾µ ¼ö ÀÖµµ·Ï ÇÒ °èȹÀÌ´Ù. 1.2 ¹öÀü ÀÌÈÄÀÇ ¼öÁ¤ °èȹÀ» ´ëÃæ Á¤¸®ÇØ º¸¸é ´ÙÀ½°ú °°´Ù.
¡á Á» ´õ ´Ù¾çÇÑ ¹®¼ Æ÷¸Ë Áö¿ø. ÇÑ±Û Á¶ÇÕÇü ¹× ºñ À¯´ÏÄÚµå ¹®¼ÀÇ ÄÚµå ÆäÀÌÁö ¼öµ¿ ÁöÁ¤ ¹× º¯È¯ ¿©ºÎ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ƯÈ÷ BOMÀÌ ¾ø´Â À¯´ÏÄÚµå ¹®¼ ÀÚµ¿ ÆǺ° ±â´ÉÀÌ ¾ÆÁ÷ ¾ø¾î ½Ã±ÞÈ÷ ÀÛ¼ºÇØ¾ß ÇÒ ºÎºÐÀÌ´Ù.
¡á À¯´ÏÄÚµå ¹®¼¸¦ º¯È¯¾øÀÌ ¹Ù·Î ÆíÁýÇÒ ¼ö ÀÖ´Â ³»ºÎ ±¸Á¶ °³¼±. ÇöÀç´Â ¹«Á¶°Ç ³»ºÎ Æ÷¸ËÀÎ ANSI·Î º¯È¯ ÈÄ ÆíÁýÇÏ°í ÀúÀåÇÒ ¶§ ´Ù½Ã º¯È¯ÇÏ´Â ¹æ½ÄÀ» »ç¿ëÇÑ´Ù. À¯´ÏÄÚµå ¹®¼°¡ Á» ´õ ´ëÁßȵǴ ½ÃÁ¡¿¡ ¸ÂÃß¾î ³»ºÎ ±¸Á¶¸¦ ¹Ù²Ü °èȹÀÌ´Ù.
¡á ÇÁ·ÎÁ§Æ® ÀÚü¸¦ À¯´ÏÄÚµå ¹× 64ºñÆ®·Î ÄÄÆÄÀÏ °¡´ÉÇϵµ·Ï À̽ļº È®º¸. ¶ÇÇÑ ´Ù±¹¾î ¹öÀü Á¦ÀÛÀ» À§ÇÑ ¸®¼Ò½º Á¤¸®. ÀüüÀûÀÎ ¼Ò½º À籸¼º ÀÛ¾÷ÀÌ ÇÊ¿äÇÏ´Ù.
¡á ÆÄÀÏ ÅÇ¿¡ ´Ý±â, ÀúÀå ¹öÆ° ¹× Æ˾÷ ¸Þ´º ºÎÂø. ÆÄÀÏ ÅÇ¿¡¼ ÆíÁýÁßÀÎ ¹®¼¸¦ Á÷Á¢ °ü¸®ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.
¡á MDI ±¸Á¶ Å»ÇÇ. ºñÁÖ¾ó ½ºÆ©µð¿Àó·³ µ¿½Ã¿¡ ¿©·¯ °³ÀÇ ¹®¼¸¦ ÆíÁýÇÒ ¼ö´Â ÀÖµÇ MDI°¡ ¾Æ´Ñ °íÀ¯ÀÇ ¹®¼Ã¢ ±¸Á¶¸¦ »ç¿ëÇÒ °èȹÀÌ´Ù.
¡á ÀÚ¹Ù, C#, ºñÁÖ¾ó º£ÀÌÁ÷, XML µî ´õ ´Ù¾çÇÑ ±¸¹® °Á¶ ±â´É Ãß°¡. ±¸¹® °Á¶ ±â´ÉÀº ¸¹À»¼ö·Ï ÁÁÀ¸¹Ç·Î Èû ´ê´Â´ë·Î ´Ã¸°´Ù.
±½Á÷ÇÑ °³¼± »çÇ׸¸ Á¤¸®ÇØ ºÁµµ ´ëÃæ ÀÌÁ¤µµ µÇ¸ç »ç¼ÒÇÑ °³¼± »çÇ×±îÁö Æ÷ÇÔÇÏ¸é ¾ÕÀ¸·Î ÇØ¾ß ÇÒ ÀÏÀÌ Á¤¸» »ê´õ¹Ì°°´Ù. »ç¿ëÀÚµéÀÇ ¿ä±¸ »çÇ×µµ °¡±ÞÀû ¼ö¿ëÇØ¾ß ÇÏ°í º¸°íµÈ ¹ö±×µµ Àâ¾Æ¾ß Çϸç ÇнÀ¿ë ÇÁ·ÎÁ§Æ®Àθ¸Å Á» ´õ Àб⠽±°í ÀçÈ°¿ë °¡´ÉÇÑ ¼Ò½º¸¦ ¸¸µé¾î¾ß ÇÒ °ÍÀÌ´Ù. ÀÌÈÄ ´õ ÀÌ»ó ¾ËÆÄ´Ï, º£Å¸´Ï ÇÏ´Â ¹öÀüÀº ¸¸µéÁö ¾ÊÀ» °ÍÀ̸ç 1.2.1, 1.2.2 ½ÄÀ¸·Î °³¼± ¹× ¼öÁ¤½Ã¸¶´Ù ¹öÀüÀ» Áö¼ÓÀûÀ¸·Î ³ôÀÏ °ÍÀÌ´Ù.
¹®Á¦´Â ½Ã°£Àε¥ Á¦ÀÛÀÚ°¡ ¿ö³« ½Ç¼Ó¾øÀÌ °ø»ç´Ù¸ÁÇÑÁö¶ó ÀÌ ÀÛ¾÷À» ¾ðÁ¦ ÇÒ °ÍÀ̶ó´Â ±¸Ã¼ÀûÀÎ °èȹÀ» Àâ±â°¡ ¹«Ã´ ¾î·Æ´Ù. ±×·¯³ª ¾Æ¹«¸® ¹Ù»Ú°í ÇÒ ÀÏÀÌ ¸¹´õ¶óµµ Ç×»ó ´ç±Ù ÇÁ·ÎÁ§Æ®¸¦ ¿°µÎ¿¡ µÎ°í °ü¸®ÇÒ °ÍÀÌ¸ç ½Ã°£ÀÌ Çã¶ôÇϴ´ë·Î Á» ´õ ÁÁÀº ÅؽºÆ® ÆíÁý±â¸¦ ¸¸µé±â À§ÇØ Ç×»ó ³ë·ÂÇÒ °ÍÀÌ´Ù. ¾Æ´Ï, ³ë·ÂÇÏ°í ½Í´Ù. °³¹ßÀڷμ ¸¸µé°í ½ÍÀº ÇÁ·Î±×·¥¸¸ ½Å°æ¾²¸ç »ì ¼ö ÀÖ´Ù¸é ¾ó¸¶³ª ÇູÇÒ±î?