¶ó. ÃÖÈÄ »óÅ·ΠµÇµ¹¸®±â

ÀÌ ±â´ÉÀº ¹®¼­¸¦ ¿­¾î¼­ ÆíÁýÇÏ´Ù°¡ µð½ºÅ©¿¡ ¸¶Áö¸· ÀúÀåµÈ »óÅ·ΠµÇµ¹¸®°í ½ÍÀ» ¶§ »ç¿ëÇÑ´Ù. ÆíÁý Ãë¼Ò ±â´ÉÀÌ µé¾î°¥ ¿¹Á¤ÀÌÁö¸¸ ³Ê¹« ¸¹ÀÌ ÆíÁýÇßÀ» °æ¿ì¿¡´Â ÀÌ ¸í·ÉÀ¸·Î ´Ù½Ã ÆÄÀÏÀ» Àд °ÍÀÌ ´õ ºü¸£´Ù. ¸ÅÅ©·Î¸¦ À߸ø µ¹·È°Å³ª ³Ê¹« ¸¹Àº ¾çÀ» Áö¿üÀ» ¶§´Â ÀÌ ¸í·ÉÀ¸·Î ÆÄÀÏÀ» ´Ù½Ã ÀÐ¾î µéÀÌ¸é µÈ´Ù. ÆíÁý±âÀÇ Çʼö ±â´ÉÀº ¾Æ´ÏÁö¸¸ ÀÖÀ¸¸é À¯¿ëÇÑ ±â´ÉÀÌ¸ç º°·Î ¾î·ÆÁöµµ ¾Ê´Ù. ´ÙÀ½ ÇÔ¼ö°¡ ÆÄÀÏÀ» µÇµ¹¸°´Ù.

 

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);

          }

     }

}

 

ÀÌ ±â´ÉÀÌ »ç¿ë °¡´ÉÇÏ·Á¸é ÀÏ´ÜÀº º¯°æµÈ ÆÄÀÏÀ̾î¾ß ÇÏ¸ç µð½ºÅ©¿¡ ÀÖ´Â ÆÄÀÏÀ̾î¾ß ÇÑ´Ù. »õ·Î ¸¸µç ÆÄÀÏÀº ¾ÆÁ÷ µð½ºÅ©¿¡ ÀúÀåµÇÁö ¾Ê¾ÒÀ¸¹Ç·Î µÇµ¹¸®±â ±â´ÉÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.