»ìÆ캸±â ¸ðµå´Â ÆÄÀÏÀ» »¡¸®»¡¸® È®ÀÎÇÏ°íÀÚ ÇÒ ¶§ »ç¿ëÇÏ´Â ¸ðµåÀÌ´Ù. ÀÌ ¸ðµå¿¡¼´Â ´õºíŬ¸¯ÇÏÁö ¾Ê°í ³ëµå¿¡¼ ÆÄÀÏÀ» ¼±ÅÃÇϱ⸸ Çصµ ÆÄÀÏÀ» Áï½Ã ¿¾î ÁØ´Ù. ´Ü¼øÈ÷ ÆÄÀÏ ³»¿ëÀ» »ìÆì º¸±â À§ÇØ »ç¿ëÇϹǷΠ»õ·Î âÀ» ¸¸µéÁö ¾Ê°í ±âÁ¸ â¿¡ ÆÄÀÏÀ» ¿¬´Ù. ´Ü, ¿·Á Àִ âÀÌ ¾ø°Å³ª ÀÌ Ã¢ÀÇ ³»¿ëÀÌ ÆíÁýµÇ¾úÀ¸¸é ºÒ°¡ÇÇÇÏ°Ô »õ·Î¿î âÀ» ¸¸µé¾î¾ß ÇÑ´Ù. OpenFromFile ÇÔ¼ö¸¦ ´ÙÀ½°ú °°ÀÌ ¼öÁ¤ÇÑ´Ù.
BOOL OpenFromFile(TCHAR *Path,BOOL bReadOnly/*=FALSE*/,BOOL bBrowse/*=FALSE*/)
{
HWND hChild;
SInfo *pSi;
BOOL bNew=TRUE;
TCHAR Mes[512];
hChild=FindChildWithFile(Path);
if (hChild) {
SendMessage(g_hMDIClient,WM_MDIACTIVATE,(WPARAM)hChild,0);
return TRUE;
}
if (!bBrowse) {
if (g_ChildNum==1) {
bNew=FALSE;
hChild=GetWindow(g_hMDIClient,GW_CHILD);
pSi=(SInfo *)GetWindowLong(hChild,0);
if (pSi->Ae.GetModified() || strncmp(pSi->NowFile,"À̸§¾øÀ½",8)) {
bNew=TRUE;
}
}
} else {
bNew=FALSE;
hChild=(HWND)SendMessage(g_hMDIClient,WM_MDIGETACTIVE,0,NULL);
if (hChild==NULL) {
bNew=TRUE;
} else {
pSi=(SInfo *)GetWindowLong(hChild,0);
if (pSi->Ae.GetModified()) {
bNew=TRUE;
}
}
}
if (bNew) {
hChild=New();
pSi=(SInfo *)GetWindowLong(hChild,0);
}
....
if (!bBrowse) {
Mru.AddMRU(Path);
}
return TRUE;
}
»ìÆì º¸±â ¸ðµå°¡ ¾Æ´Ò ¶§´Â ±âº» âÀÎÁöÀÇ ¿©ºÎ¿¡ µû¶ó »õ·Î âÀ» ¸¸µé °ÍÀÎÁö ¾Æ´ÑÁö¸¦ ÆÇ´ÜÇÏ°í »ìÆì º¸±â ¸ðµåÀÏ ¶§´Â È°¼ºÃ¢ÀÌ ÀÖ´ÂÁö, ±×¸®°í º¯°æµÇ¾ú´ÂÁö¿¡ µû¶ó »õ âÀ» ¸¸µéÁö¸¦ °áÁ¤ÇÑ´Ù. È°¼º Â÷Àϵ尡 Çϳªµµ ¾ø°Å³ª ÀÖ´õ¶óµµ ÆÄÀÏÀÌ ÆíÁýµÇ¾úÀ¸¸é »õ·Î¿î ÆíÁýâÀ» ¸¸µé°í ±×·¸Áö ¾Ê´Ù¸é ±âÁ¸ âÀÇ ¹®¼¸¦ ´Ý°í »õ ¹®¼¸¦ ¿¾î ÁØ´Ù. »ìÆì º¸±â ¸ðµåÀÏ ¶§´Â MRU¿¡ µî·ÏÇÏÁö ¾Ê´Â´Ù.
ÆÄÀÏ Æ®¸®¿¡¼ ÆÄÀÏÀ» ´õºíŬ¸¯Çϸé ÀÌ ÆÄÀÏÀ» ¿©´Âµ¥ ¹æ¹ýÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. GetNodePath ÇÔ¼ö·Î ´õºíŬ¸¯µÈ ³ëµåÀÇ ¿ÏÀü °æ·Î¸¦ ±¸ÇÏ°í OpenFromFile ÇÔ¼ö¸¸ È£ÃâÇÏ¸é µÈ´Ù. ÀÌ¿Ü¿¡ ÆÄÀÏ À̸§ º¯°æ, ÆÄÀÏ »èÁ¦ µîÀÇ ¾à°£ÀÇ À⽺·¯¿î ±â´ÉµéÀ» ±¸ÇöÇÏ°í ÀÖÀ¸¸ç Æ˾÷¸Þ´º¿¡ ´ëºÎºÐÀÇ ±â´ÉÀÌ °ø°³µÇ¾î ÀÖ´Ù. ÀÌÈÄ ÆÄÀÏâÀº ÇÁ·ÎÁ§Æ®ÀÇ ¸ñ·ÏÀ» º¸¿©ÁÖ´Â ¿ëµµ·Îµµ »ç¿ëµÈ´Ù.