ÆÄÀÏÅÇÀº ÆíÁýÁßÀÎ ÆÄÀÏÀÇ ¸ñ·ÏÀ» º¸¿©ÁÖ´Â ÀåÄ¡À̱⵵ ÇÏÁö¸¸ ÆíÁýÇÒ ¹®¼¸¦ ¼±ÅÃÇÏ´Â ÀåÄ¡À̱⵵ ÇÏ´Ù. »ç¿ëÀÚ°¡ ÅÇÀ» ´©¸¦ ¶§ ÀÌ ÅÇ°ú ´ëÀÀµÇ´Â ¹®¼¸¦ ã¾Æ È°¼ºÃ¢À» ¹Ù²ã¾ß ÇÑ´Ù. ÅÇ ÇÁ·¹ÀÓ ÇÁ·Î½ÃÀú¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÑ´Ù.
LRESULT CALLBACK DGTabProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
....
LPNMHDR hdr;
int idx;
TCITEM tie;
HWND hChild;
switch(iMessage) {
....
case WM_NOTIFY:
hdr=(LPNMHDR)lParam;
switch (hdr->code) {
case TCN_SELCHANGE:
idx=TabCtrl_GetCurSel(hFileTab);
tie.mask=TCIF_PARAM;
TabCtrl_GetItem(hFileTab,idx,&tie);
hChild=FindChildWithFile((TCHAR *)tie.lParam);
SendMessage(g_hMDIClient,WM_MDIACTIVATE,(WPARAM)hChild,0);
break;
}
return 0;
ÅÇÀÇ ¼±Åà »óÅ°¡ ¹Ù²î¸é TCN_SELCHANGE ÅëÁö ¸Þ½ÃÁö°¡ Àü´ÞµÈ´Ù. À̶§ ¼±ÅÃµÈ ÅÇÀÇ »ç¿ëÀÚ µ¥ÀÌÅÍ(lParam)¿¡ ÀúÀåµÈ ¿ÏÀü °æ·Î¸¦ ²¨³» FindChildWithFile ÇÔ¼ö·Î ÀÌ ÆÄÀÏÀ» ÆíÁýÇÏ°í Àִ âÀ» ã¾Æ È°¼ºÈ½ÃÄ×´Ù. ÅÇ°ú ´ëÀÀµÇ´Â ¹®¼°¡ Á¤È®ÇÏ°Ô È°¼ºÈµÉ °ÍÀÌ´Ù.
ÅÇÀ» ¼±ÅÃÇϸé È°¼ºÃ¢ÀÌ ¹Ù²î´Âµ¥ ¹Ý´ëÀÇ °æ¿ìµµ ¶È°°ÀÌ Ã³¸®ÇØ¾ß ÇÑ´Ù. Áï È°¼ºÃ¢ÀÌ ¹Ù²î¸é ´ëÀÀµÇ´Â ÅÇÀ» ¼±ÅÃÇØ¾ß ÇÑ´Ù. ¹®¼Ã¢ÀÌ Æ÷Ä¿½º¸¦ ¹Þ¾ÒÀ» ¶§ ´ëÀÀµÇ´Â ÅÇÀÇ À妽º¸¦ ã¾Æ ¼±ÅÃÇÏ¸é µÈ´Ù.
LRESULT CALLBACK DGChildProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
int idx;
....
case WM_SETFOCUS:
pSi=(SInfo *)GetWindowLong(hWnd,0);
SetFocus(pSi->Ae.hWnd);
SetStatusText(0xffff);
idx=FindFileTab(pSi->NowFile);
TabCtrl_SetCurSel(hFileTab,idx);
return 0;
ÅÇ¿¡´Â ÆÄÀÏ À̸§°ú ÇÔ²² º¯°æ ¿©ºÎ¸¦ Ç¥½ÃÇÏ´Â À̹ÌÁö°¡ Ç¥½ÃµÇ´Âµ¥ ÀÌ À̹ÌÁöµµ °ü¸® ´ë»óÀÌ´Ù. ÆÄÀÏÀÇ º¯°æ ¿©ºÎ°¡ ¹Ù²î¸é ÅÇÀÇ À̹ÌÁöµµ ¹Ù²ã¾ß ÇÑ´Ù. »ç¿ëÀÚ°¡ ÆÄÀÏÀ» ÆíÁýÇϸé À̹ÌÁöµµ ÆĶõ»ö¿¡¼ »¡°£»öÀ¸·Î ¹Ù²î¾î¾ß ÇÏ¸ç ½ÇÇàÃë¼Ò¿¡ ÀÇÇØ º¯°æÀÌ Ãë¼ÒµÇ¸é »¡°£»öÀÌ ´Ù½Ã ÆĶõ»öÀ¸·Î ¹Ù²î¾î¾ß ÇÑ´Ù. ÀÌ À̹ÌÁö¸¦ °ü¸®ÇØ¾ß ÇÒ ½ÃÁ¡Àº »óŶõÀÇ ÆÄÆ® 3ÀÌ º¯°æµÉ ¶§¿Í ¿ÏÀüÈ÷ µ¿ÀÏÇÏ´Ù. ±×·¡¼ »óŶõÀÇ ÅؽºÆ®¸¦ º¯°æÇÒ ¶§ À̹ÌÁöµµ °°ÀÌ º¯°æÇÏ¸é µÈ´Ù.
void SetStatusText(int mask)
{
TCITEM tie;
int idx;
....
if (mask & 8) {
tie.mask=TCIF_IMAGE;
if (pSi->Ae.GetModified()) {
lstrcpy(Text,"ÆíÁýµÇ¾úÀ½");
tie.iImage=1;
} else {
lstrcpy(Text,"¹ÌÆíÁý");
tie.iImage=0;
}
SendMessage(hStatus, SB_SETTEXT, 3, (LPARAM)Text);
idx=FindFileTab(pSi->NowFile);
if (idx!=-1) {
TabCtrl_SetItem(hFileTab,idx,&tie);
}
}
ÅؽºÆ®´Â ±×´ë·Î µÎ°í ¹®¼ÀÇ º¯°æ ¿©ºÎ¿¡ µû¶ó À̹ÌÁö¸¸ ¹Ù²ã ÁÖ¾ú´Ù. À§ÀÇ Äڵ忡¼ idx°¡ -1ÀÎ °æ¿ì´Â Àý´ë·Î ¾øÀ» °Í °°Áö¸¸ »õ À̸§À¸·Î ÀúÀåÇÒ ¶§´Â ÆÄÀϸíÀÌ ¸ÕÀú ¹Ù²î°í º¯°æÇ÷¡±×°¡ º¯°æµÇ±â ¶§¹®¿¡ ÀϽÃÀûÀ¸·Î ÅÇÀÇ Á¤º¸¿Í ÆÄÀϸíÀÌ ´Ù¸¦ ¼ö°¡ ÀÖ´Ù. ±»ÀÌ -1ÀÎ °æ¿ì¸¦ ±¸ºÐÇÏÁö ¾Ê¾Æµµ µÇÁö¸¸ Á¶±ÝÀÌ¶óµµ ºÒÇÊ¿äÇÑ Ã³¸®´Â »ý·«ÇÏ´Â °ÍÀÌ ÁÁ´Ù.
SetStatusText ÇÔ¼ö´Â º¯°æÇ÷¡±×¿¡ º¯È°¡ ÀÖÀ» ¶§¸¶´Ù È£ÃâµÇ¹Ç·Î ÆÄÀÏÅÇÀÇ À̹ÌÁö¸¦ ¹Ù²ã Áֱ⿡´Â ÃÖÀûÀÇ Àå¼ÒÀÓÀÌ ºÐ¸íÇÏ´Ù. ÇÏÁö¸¸ ÀÌ ÇÔ¼ö´Â È°¼º â¿¡ ´ëÇؼ¸¸ ÅëÁö ¸Þ½ÃÁö¸¦ ¹Þ±â ¶§¹®¿¡ ºñÈ°¼ºÃ¢±îÁö ÇѲ¨¹ø¿¡ ÀúÀåÇÏ´Â ¸ðµÎ ÀúÀå(SaveAll) ¸í·É¿¡ ´ëÇؼ´Â ÆÄÀÏÅÇÀÇ À̹ÌÁö¸¦ Á¦´ë·Î ¹Ù²ã ÁÖÁö ¸øÇÑ´Ù. ¸ðµÎ ÀúÀåÇÒ ¶§´Â °¢ ÆÄÀÏÀÌ ÀúÀåµÉ ¶§¸¶´Ù ÆÄÀÏÅÇÀÇ À̹ÌÁö¸¦ º¯°æÇØ¾ß ÇÑ´Ù. SaveToFile¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÑ´Ù.
BOOL SaveToFile(HWND hChild,TCHAR *Path)
{
....
TCITEM tie;
int idx;
....
tie.mask=TCIF_IMAGE;
idx=FindFileTab(Path);
tie.iImage=0;
TabCtrl_SetItem(hFileTab,idx,&tie);
return TRUE;
}
ÀÌ ÇÔ¼ö´Â ÆÄÀÏÀ» ÀúÀåÇÏ´Â ÃÖÁ¾ ÇÔ¼öÀ̹ǷΠ¿©±â¼ ÆÄÀÏÅÇÀÇ À̹ÌÁö¸¦ 0¹øÀ¸·Î ¹Ù²Ù¸é ¸ðµÎ ÀúÀå½Ã ÀúÀåµÈ ¸ðµç ÆÄÀÏÀÇ À̹ÌÁö°¡ º¯°æµÈ´Ù. ÀÌÈÄ ÀÚµ¿ÀúÀå ±â´ÉÀÌ Ãß°¡µÇ´õ¶óµµ ´õ ÀÌ»ó ÀúÀå¿¡ ÀÇÇÑ À̹ÌÁö °ü¸®´Â ÇÒ ÇÊ¿ä°¡ ¾øÀ» °ÍÀÌ´Ù.