°¡. ³¯Â¥, ½Ã°£ »ðÀÔ

ÆíÁý ¸Þ´ºÀÇ »ðÀÔ Æ˾÷¸Þ´º¿¡´Â ÇöÀç ³¯Â¥¿Í ½Ã°£À» ¹®¼­ÀÇ Áß°£¿¡ »ðÀÔÇÒ ¼ö ÀÖ´Â ±â´ÉÀÌ Á¦°øµÈ´Ù. ¹®¼­ ÀÛ¼º ³¯Â¥³ª ½Ã°£À» ¹®¼­¿¡ ±â·ÏÇÏ°íÀÚ ÇÒ ¶§ ÀÌ ±â´ÉÀ» »ç¿ëÇÏ¸é ½Ã½ºÅÛ ½Ã°è¸¦ ±âÁØÀ¸·Î ÇÑ Á¤È®ÇÑ ½Ã°£À» »ðÀÔÇϹǷΠ½Ã°è¸¦ º¼ ÇÊ¿ä°¡ ¾ø¾î Æí¸®ÇÏ´Ù. ÀÌ¿Ü¿¡ ÆíÁýÇÏ°í ÀÖ´Â ÆÄÀÏ °æ·Î³ª À̸§À» »ðÀÔÇÏ´Â À¯»çÇÑ ±â´Éµéµµ »ý°¢ÇØ º¼ ¼ö ÀÖ´Ù. ÀÌ·± °ªµéÀº ³ª¸§´ë·ÎÀÇ Å¸ÀÔÀÌ ÀÖÁö¸¸ ¹®¼­¿¡ »ðÀ﵃ ¶§´Â Ç×»ó ¹®ÀÚ¿­ ÇüÅ·Πº¯È¯ÇÑ ÈÄ »ðÀԵǾî¾ß ÇÑ´Ù. ÅؽºÆ® ÆÄÀÏ¿¡ ÀúÀåµÇ´Â Á¤º¸´Â ¾îÂ÷ÇÇ ¹®ÀÚ¿­ Æ÷¸ËÀ̱⠶§¹®ÀÌ´Ù.

ÀÌ Á¤º¸µéÀÇ ½ÇÁ¦°ªÀº ÄÁÆ®·Ñº¸´Ù´Â È£½ºÆ®°¡ ±¸ÇÏ´Â °ÍÀÌ ´õ ½¬¿ì¹Ç·Î ¹®ÀÚ¿­Àº È£½ºÆ®°¡ ÀÛ¼ºÇÏ°í ÄÁÆ®·ÑÀº È£½ºÆ®°¡ Àü´ÞÇÑ ¹®ÀÚ¿­À» ÇöÀç À§Ä¡¿¡ »ðÀÔÇÏ´Â ±â´É¸¸ Á¦°øÇϱâ·Î ÇÑ´Ù. ApiEdit¿¡ ´ÙÀ½ ¸â¹öÇÔ¼ö¸¦ ÀÛ¼ºÇÑ´Ù.

 

void CApiEdit::InsertText(TCHAR *Text)

{

     if (bReadOnly) {

          return;

     }

 

     BOOL bPrevSel;

     if (SelStart != SelEnd) {

          StartUndoGroup();

     }

     bPrevSel=DeleteSelection();

 

     Insert(off,Text);

     Invalidate(FindParaStart(off));

     off=off+lstrlen(Text);

     SetCaret();

 

     if (bPrevSel) {

          EndUndoGroup();

     }

}

 

´Ü¼øÇÑ ¹®ÀÚ¿­ »ðÀÔ ÇÔ¼öÁö¸¸ ²Ï ÇÏ´Â ÀÏÀÌ ¸¹´Ù. ÀÏ´Ü ÀбâÀü¿ëÀÏ ¶§´Â ¹®ÀÚ¿­ »ðÀÔÀ» °ÅºÎÇÑ´Ù. Insert¿¡¼­ ÀбâÀü¿ë Á¡°ËÀ» ÇÏ°í ÀÖÀ¸¹Ç·Î ¿©±â¼­ bReadOnly¸¦ Á¡°ËÇÏÁö ¾Ê¾Æµµ ¹®ÀÚ¿­ »ðÀÔÀº µÇÁö ¾ÊÁö¸¸ »ðÀÔ ¹®ÀÚ¿­ÀÇ ±æÀ̸¸Å­ ij·µÀÌ ºÒÇÊ¿äÇÏ°Ô ¿òÁ÷À̹ǷΠÀ̸¦ ¸·°íÀÚ ÀбâÀü¿ë Á¡°ËÀ» ÇÏ¿´´Ù. ¼±Åÿµ¿ªÀÌ ÀÖ´Ù¸é »õ·Î »ðÀԵǴ ¹®ÀÚ¿­·Î ´ëüÇÏ¿´À¸¸ç À̶§ ¼±Åÿµ¿ª »èÁ¦¿Í »õ ¹®ÀÚ¿­ »ðÀÔ µ¿ÀÛÀº °°Àº ÆíÁý ±×·ìÀ» ÀÌ·é´Ù.

ÀÌÁ¦ È£½ºÆ®´Â ¾î¶² Á¤º¸µçÁö ¹®ÀÚ¿­ ÇüÅ·Π°¡°øÇؼ­ ÀÌ ÇÔ¼ö¸¸ ºÎ¸£¸é µÈ´Ù. ³¯Â¥¿Í ½Ã°£ »ðÀÔ ¸Þ´º¿¡ ´ëÇØ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÑ´Ù.

 

void OnCommand(HWND hWnd,WPARAM wParam,LPARAM lParam)

{

     SYSTEMTIME st;

     ....

     case IDM_EDIT_DATE:

          GetLocalTime(&st);

          wsprintf(szTemp,"%d³â %d¿ù %dÀÏ ",st.wYear, st.wMonth, st.wDay);

          pSi->Ae.InsertText(szTemp);

          break;

     case IDM_EDIT_TIME:

          GetLocalTime(&st);

          wsprintf(szTemp,"%d½Ã %dºÐ %dÃÊ ",st.wHour, st.wMinute, st.wSecond);

          pSi->Ae.InsertText(szTemp);

          break;

 

½Ã°£°ú ³¯Â¥´Â GetLocalTime ÇÔ¼ö·Î ½±°Ô ±¸ÇÒ ¼ö ÀÖ°í ÀÌ Á¤º¸¸¦ ¹®ÀÚ¿­·Î ¹Ù²Ü ¶§´Â wsprintf ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ±¸ÇØÁø ¹®ÀÚ¿­À» InsertText ÇÔ¼ö·Î Àü´ÞÇϱ⸸ ÇÏ¸é ¹®¼­ÀÇ ÇöÀç À§Ä¡¿¡ ³¯Â¥¿Í ½Ã°£ÀÌ ¹®ÀÚ¿­ ÇüÅ·Π»ðÀ﵃ °ÍÀÌ´Ù. ³¯Â¥¿Í ½Ã°£ÀÇ Ç¥Çö ÇüÅ´ Çϵå ÄÚµùµÇ¾î Àִµ¥ ÀÌ Æ÷¸ËÀ» »ç¿ëÀÚ°¡ ¼±ÅÃÇϵµ·Ï ÇÏ°í ½Í´Ù¸é ¼³Á¤ ¿É¼Ç¿¡ Æ÷ÇÔ½ÃÅ°¸é µÈ´Ù. ±×·¯³ª ÀÚÁÖ »ç¿ëµÇ´Â ¸í·ÉÀÌ ¾Æ´Ï¶ó ±×·¸°Ô ÇÏÁö´Â ¾Ê¾Ò´Ù.

ÀÌ ¿Ü¿¡ InsertText ÇÔ¼ö¸¦ »ç¿ëÇϸé ÆíÁýÇÏ°í ÀÖ´Â ÆÄÀÏÀÇ °æ·Î³ª, ÆÄÀÏÀÇ À̸§, ÆÄÀÏÀÇ ½Ã°£ µîÀ» »ðÀÔÇÒ ¼ö ÀÖÀ¸¸ç ¹Ì¸® µî·ÏÇسõÀº »ó¿ë±¸¸¦ »ðÀÔÇÒ ¼öµµ ÀÖ´Ù. ¾î¶² Á¤º¸µçÁö ¹®ÀÚ¿­ ÇüÅ·Πº¯È¯ÀÌ °¡´ÉÇÑ Á¤º¸´Â ¸ðµÎ »ðÀÔÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù. ´Ù¸¥ ÆÄÀÏÀÇ ³»¿ëÀ» ¹®¼­ Áß°£À¸·Î ºÒ·¯ ¿À´Â °Íµµ º°·Î ¾î·ÆÁö ¾ÊÀºµ¥ Á÷Á¢ ±¸ÇöÇغ¸±â ¹Ù¶õ´Ù.