ÀÌ ±â´ÉÀº ¹®¼¸¦ ¿¾î¼ ÆíÁýÇÏ´Ù°¡ µð½ºÅ©¿¡ ¸¶Áö¸· ÀúÀåµÈ »óÅ·ΠµÇµ¹¸®°í ½ÍÀ» ¶§ »ç¿ëÇÑ´Ù. ÆíÁý Ãë¼Ò ±â´ÉÀÌ µé¾î°¥ ¿¹Á¤ÀÌÁö¸¸ ³Ê¹« ¸¹ÀÌ ÆíÁýÇßÀ» °æ¿ì¿¡´Â ÀÌ ¸í·ÉÀ¸·Î ´Ù½Ã ÆÄÀÏÀ» Àд °ÍÀÌ ´õ ºü¸£´Ù. ¸ÅÅ©·Î¸¦ À߸ø µ¹·È°Å³ª ³Ê¹« ¸¹Àº ¾çÀ» Áö¿üÀ» ¶§´Â ÀÌ ¸í·ÉÀ¸·Î ÆÄÀÏÀ» ´Ù½Ã ÀÐ¾î µéÀÌ¸é µÈ´Ù. ÆíÁý±âÀÇ Çʼö ±â´ÉÀº ¾Æ´ÏÁö¸¸ ÀÖÀ¸¸é À¯¿ëÇÑ ±â´ÉÀÌ¸ç º°·Î ¾î·ÆÁöµµ ¾Ê´Ù. ´ÙÀ½ ÇÔ¼ö°¡ ÆÄÀÏÀ» µÇµ¹¸°´Ù.
void RevertFile(HWND hChild)
{
SInfo *pSi;
pSi=(SInfo *)GetWindowLong(hChild,0);
OpenFileToChild(hChild,pSi->NowFile);
if (GetFileAttributes(pSi->NowFile) & FILE_ATTRIBUTE_READONLY) {
pSi->Ae.SetReadOnly(TRUE);
}
}
ÆíÁýÇÏ°í ÀÖ´ø ÆÄÀÏÀ̹ǷΠ»õ·Î âÀ» ¸¸µé ÇÊ¿äµµ ¾ø°í OpenFileToChild ÇÔ¼ö·Î ´Ù½Ã ÀоîµéÀ̱⸸ ÇÏ¸é µÈ´Ù. Ȥ½Ã ÀбâÀü¿ë ÆÄÀÏÀ̶ó¸é ´Ù½Ã ÀбâÀü¿ë »óÅ·Π¸¸µé¾î¾ß ÇÑ´Ù. OnCommand¿¡¼ ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÑ´Ù.
void OnCommand(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
TCHAR Mes[512];
switch(LOWORD(wParam)) {
....
case IDM_FILE_REVERT:
wsprintf(Mes,"%s ÆÄÀÏÀ» ÃÖÈÄ ÀúÀåµÈ »óÅ·Π´Ù½Ã ÀÐÀ¸½Ã°Ú½À´Ï±î?\r\n"
"Áö±Ý±îÁö ÆíÁýµÈ ¸ðµç ³»¿ëÀ» ÀÒ°Ô µË´Ï´Ù.",pSi->NowFile);
if (MessageBox(g_hFrameWnd,Mes,"Áú¹®",MB_YESNO)==IDYES) {
RevertFile(hActive);
}
break;
ÆÄÀÏ µÇµ¹¸®±â ±â´ÉÀº Áö±Ý±îÁö ÆíÁýÇÏ´ø ¸ðµç ³»¿ëÀ» ´Ù ¹ö¸®´Â ´Ù¼Ò À§ÇèÇÑ ¸í·ÉÀ̹ǷΠ»ç¿ëÀÚÀÇ È®ÀÎÀ» °ÅÄ¡µµ·Ï ÇÏ¿´´Ù. OnInitMenu¿¡¼´Â ÀÌ ¸Þ´º¸¦ ÀûÀýÇÏ°Ô °ü¸®ÇÑ´Ù.
void OnInitMenu(HWND hWnd,WPARAM wParam,LPARAM lParam)
{
if (hActive) {
....
if (pSi->Ae.GetModified() && strncmp(pSi->NowFile,"À̸§¾øÀ½",8)!=0) {
EnableMenuItem(hMenu, IDM_FILE_REVERT, MF_BYCOMMAND | MF_ENABLED);
} else {
EnableMenuItem(hMenu, IDM_FILE_REVERT, MF_BYCOMMAND | MF_GRAYED);
}
}
}
ÀÌ ±â´ÉÀÌ »ç¿ë °¡´ÉÇÏ·Á¸é ÀÏ´ÜÀº º¯°æµÈ ÆÄÀÏÀ̾î¾ß ÇÏ¸ç µð½ºÅ©¿¡ ÀÖ´Â ÆÄÀÏÀ̾î¾ß ÇÑ´Ù. »õ·Î ¸¸µç ÆÄÀÏÀº ¾ÆÁ÷ µð½ºÅ©¿¡ ÀúÀåµÇÁö ¾Ê¾ÒÀ¸¹Ç·Î µÇµ¹¸®±â ±â´ÉÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.