ÆÄÀÏ¿¡¼ ¹®ÀÚ¿À» °Ë»öÇÏ´Â ¸ñÀûÀº ƯÁ¤ ¹®ÀÚ¿ÀÇ Á¸Àç ¿©ºÎ¸¦ È®ÀÎÇÏ°íÀÚ ÇÏ´Â ¸ñÀûº¸´Ù ±× ¹®ÀÚ¿ÀÌ ÀÖ´Â ÆÄÀÏÀ» ¿¾î¼ ÆíÁýÇÏ°íÀÚ ÇÏ´Â ¸ñÀûÀÌ ´õ Å©´Ù. µû¶ó¼ °Ë»ö°á°úâÀº °Ë»ö ¹®ÀÚ¿À» °¡Áø ÆÄÀÏÀ» Áï½Ã ¿¾î ÁÙ ¼ö ÀÖ´Â ¼ºñ½º¸¦ ÇØ¾ß ÇÏ¸ç ¹®ÀÚ¿ÀÌ ÀÖ´Â À§Ä¡·Î À̵¿ÇÏ¸é ´õ¿í ÁÁ´Ù. °Ë»ö°á°úâ¿¡ ÀÌ ±â´ÉÀ» ÀÛ¼ºÇغ¸ÀÚ.
°Ë»ö °á°ú´Â ¸®½ºÆ® ºä ÄÁÆ®·Ñ¿¡ º¸°í¼ ÇüÅ·ΠÃâ·ÂµÇ¾î ÀÖÀ¸¹Ç·Î ¸®½ºÆ® ºä ÄÁÆ®·ÑÀÇ ´õºíŬ¸¯ ÅëÁö ¸Þ½ÃÁö¿¡¼ À̸¦ ó¸®ÇÏ¸é µÈ´Ù. DGOutputProc¿¡ ´ÙÀ½ ÅëÁö ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â Äڵ带 ÀÛ¼ºÇϵµ·Ï ÇÏÀÚ.
LRESULT CALLBACK DGOutputProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
switch(iMessage) {
....
case WM_NOTIFY:
LPNMHDR hdr;
LPNMLISTVIEW nlv;
hdr=(LPNMHDR)lParam;
nlv=(LPNMLISTVIEW)lParam;
LPNMITEMACTIVATE nia;
if (hdr->hwndFrom == hList) {
switch (hdr->code) {
case NM_DBLCLK:
nia = (LPNMITEMACTIVATE)lParam;
if (nia->iItem != -1) {
OpenFileFromOutput(nia->iItem);
}
return TRUE;
}
}
break;
}
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
´õºíŬ¸¯µÈ Ç׸ñÀÇ À妽º¸¦ ±¸Çϸé ÀÌ Ç׸ñÀ¸·ÎºÎÅÍ °Ë»öµÈ ÆÄÀÏ°ú °Ë»ö À§Ä¡¸¦ ±¸ÇÒ ¼ö ÀÖ´Ù. °Ë»ö°á°ú·ÎºÎÅÍ À妽º¸¦ Àü´Þ¹Þ¾Æ ÆÄÀÏÀ» ¿¾îÁÖ´Â ÇÔ¼ö¸¦ ÀÛ¼ºÇÑ´Ù.
void OpenFileFromOutput(int idx)
{
TCHAR Text[MAX_PATH];
TCHAR Path[MAX_PATH];
int line,col;
int toff;
TCHAR *p;
HWND hActive;
SInfo *pSi;
ListView_GetItemText(hList,idx,1,Text,MAX_PATH);
if (FindFlag & AE_FIND_SHORTPATH) {
wsprintf(Path,"%s\\%s",arFind[2].Get(0),Text);
} else {
lstrcpy(Path,Text);
}
p=strrchr(Path,¡¯,¡¯);
col=atoi(p+1)-1;
p=strrchr(Path,¡¯(¡®);
line=atoi(p+1)-1;
*p=0;
if (OpenFromFile(Path)==FALSE) {
return;
}
hActive=(HWND)SendMessage(g_hMDIClient,WM_MDIGETACTIVE,0,NULL);
pSi=(SInfo *)GetWindowLong(hActive,0);
pSi->Ae.GotoLine(line,col,1);
toff=pSi->Ae.GetOffset();
pSi->Ae.SetSelect(toff,toff+lstrlen(LastFIF),TRUE);
}
¸®½ºÆ® ºäÀÇ µÎ ¹ø° Ä÷³(1¹ø° Ä÷³)¿¡´Â °Ë»öµÈ ÆÄÀÏÀÇ °æ·Î¿Í À§Ä¡°¡ ¹®ÀÚ¿ ÇüÅ·ΠÀúÀåµÇ¾î Àִµ¥ ÀÌ ¹®ÀÚ¿À» Çؼ®ÇÏ¸é ¿¾î¾ß ÇÒ ÆÄÀÏ°ú À̵¿ÇØ¾ß ÇÒ À§Ä¡¸¦ Á¤È®ÇÏ°Ô ±¸ÇÒ ¼ö ÀÖ´Ù. ÆÄÀÏÀÇ °æ·Î¸¦ ±¸ÇÑ ÈÄ OpenFromFile ÇÔ¼ö¸¦ È£ÃâÇÏ¿© ÆÄÀÏÀ» ¿¾ú´Ù. OpenFromFileÀº ÀÌ¹Ì ¿¸° ÆÄÀÏÀÎ °æ¿ì Æ÷Ä¿½º¸¸ À̵¿½ÃÄÑ ÁÖ¸ç MRU¿¡µµ µî·ÏÇÑ´Ù.
ÆÄÀÏÀ» ¿¬ ÈÄ line ÁÙÀÇ col ÄÀ¸·Î À̵¿ÇÏ°í °Ë»ö ¹®ÀÚ¿À» ¼±ÅÃÇÏ¿© ¾î¶² ¹®ÀÚ¿ÀÌ °Ë»öµÇ¾ú´ÂÁö Á¤È®ÇÏ°Ô º¸¿©ÁØ´Ù. ÀÌÁ¦ ÆÄÀÏ¿¡ ¹®ÀÚ¿À» °Ë»öÇÑ ÈÄ °Ë»ö°á°ú¸¦ ´õºíŬ¸¯Çϸé Áï½Ã ÆÄÀÏÀ» ¿¾î ÁÖ°í °Ë»ö ¹®ÀÚ¿ÀÌ ÀÖ´Â À§Ä¡·Î À̵¿ÇÒ °ÍÀÌ´Ù. ÀÌ ±â´ÉÀº ºñ±³Àû Àß µ¿ÀÛÇÏÁö¸¸ ÇÑ °¡Áö ¹ö±×°¡ ÀÖ´Ù.
¸¸¾à ÆÄÀÏ°Ë»öÀ» ÇÑ ÈÄ ´Ù¸¥ ÆíÁý±â·Î ÀÌ ÆÄÀÏÀ» ÆíÁýÇعö¸®¸é °Ë»ö°á°ú·ÎºÎÅÍ °Ë»öµÈ À§Ä¡¸¦ Á¦´ë·Î ã¾Æ°¥ ¼ö°¡ ¾ø´Ù. ¿¹¸¦ µé¾î (10,20)ÀÇ À§Ä¡¿¡¼ ¹®ÀÚ¿À» ã¾Ò´Âµ¥ ÀÌ ÆÄÀÏÀÌ ÆíÁýµÇ¾î ¹®ÀÚ¿ÀÇ À§Ä¡°¡ (12,25)·Î À̵¿µÇ¾î ¹ö·È´Ù¸é °Ë»ö°á°úâÀÌ °¡Áö°í ÀÖ´Â (10,20) À̶ó´Â À§Ä¡´Â ¹«È¿°¡ µÈ´Ù. »Ó¸¸ ¾Æ´Ï¶ó ÆíÁýµÈ ÈÄ 20Ä÷³ÀÌ ÇѱÛÀÇ °æ°è¿¡ °ÉÄ¡°Ô µÇ¸é ÇÁ·Î±×·¥ÀÌ Á×À» ¼öµµ ÀÖ´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é ¸î °³ÀÇ ÇÔ¼ö±ºÀÌ ´õ ÇÊ¿äÇϹǷΠÀϽÃÀûÀÎ ³ë¿î ¹ö±×·Î ³²°Ü ³õµµ·Ï ÇÑ´Ù.