¶ó. HomeÅ° ó¸®

Å°º¸µåÀÇ HomeÅ°´Â ÁÙÀÇ Ã³À½À¸·Î À̵¿ÇÏ´Â ±â´ÉÀ» °¡Áö°í ÀÖ´Ù. ±×·±µ¥ µé¿©¾²±â°¡ µÈ ¹®¼­´Â ÁÙÀÇ Ã³À½À¸·Î °¡ ºÁ¾ß °ø¹é¹Û¿¡ ¾øÀ¸¹Ç·Î ´Ù½Ã ¹®ÀÚ°¡ ÀÖ´Â °÷±îÁö À̵¿ÇØ¾ß ÇÏ´Â ºÒÆíÇÔÀÌ ÀÖ´Ù. ±×·¡¼­ HomeÅ°¸¦ ´©¸¦ ¶§ ¾Æ¿¹ Á٠óÀ½À¸·Î °¡Áö ¸»°í ù ¹ø° ¹®ÀÚ°¡ ÀÖ´Â °÷À¸·Î °¡´Â °ÍÀÌ Æí¸®ÇÏ¸ç ´ëºÎºÐÀÇ ÆíÁý±âµéÀÌ ÀÌ ±â´ÉÀ» Áö¿øÇÏ°í ÀÖ´Ù.

HomeÅ°ÀÇ ÀÌ·± Ư¼ºÀº ÇÁ·Î±×·¡¹Ö ¼Ò½º¸¦ ÆíÁýÇÒ ¶§ ƯÈ÷ À¯¿ëÇÏÁö¸¸ ÀÏ¹Ý ÅؽºÆ®´Â µé¿©¾²±â¸¦ ÇÏÁö ¾Ê±â ¶§¹®¿¡ ÀÖÀ¸³ª ¸¶³ª º° µµ¿òÀÌ ¾ÈµÈ´Ù. ¿ÀÈ÷·Á ÀÌ ±â´ÉÀÌ ºÎÀÚ¿¬½º·¯¿ï ¼öµµ ÀÖÀ¸¹Ç·Î ¼³Á¤ ¿É¼ÇÀ¸·Î ¸¸µé°í ¿É¼Ç¿¡ µû¶ó ij·µÀ̵¿ ¹æ½ÄÀ» ¼±ÅÃÇÒ ¼ö ÀÖµµ·Ï Çغ¸ÀÚ. CApiEdit¿¡ ´ÙÀ½ º¯¼ö¸¦ Ãß°¡ÇÑ´Ù.

 

class CApiEdit

{

     ....

     BOOL bHomeToFirstChar;

 

ÀÌ º¯¼ö°¡ TRUEÀ̸é HomeÅ°¸¦ ´©¸¦ ¶§ ÁÙÀÇ Ã³À½À¸·Î °¡Áö ¾Ê°í ù ¹®ÀÚ°¡ ÀÖ´Â À§Ä¡·Î À̵¿ÇÑ´Ù. Ưº°ÇÑ ÀÌÀ¯°¡ ¾ø´Â ÇÑ ÀÌ ¹æ½Ä´ë·Î À̵¿ÇÏ´Â °ÍÀÌ Æí¸®ÇϹǷΠµðÆúÆ®´Â TRUE·Î ¼³Á¤ÇÏ´Â °ÍÀÌ ÁÁ´Ù. SetDefaultSetting¿¡¼­ ÀÌ ¿É¼ÇÀ» TRUE·Î ÃʱâÈ­ÇÑ´Ù.

 

void CApiEdit::SetDefaultSetting()

{

     ....

     bHomeToFirstChar=TRUE;

}

 

HomeÅ° ÀÔ·ÂÀ» ó¸®ÇÏ´Â ÄÚµå´Â OnKey¿¡ Àִµ¥ ÀÌ ÇÔ¼ö¿¡ ¾à°£ÀÇ Äڵ常 Ãß°¡ÇÏ¸é µÈ´Ù. ´ÙÀ½°ú °°ÀÌ Äڵ带 ÀÛ¼ºÇÑ´Ù.

 

void CApiEdit::OnKey(HWND hWnd, UINT vk, BOOL fDown, int cRepeat, UINT flags)

{

    int toff;

 

     switch (vk)

     {

     ....

     case VK_HOME:

          GetRCFromOff(off,r,c);

          OldOff=off;

          if (bControl) {

              off=0;

          } else {

              off=GetOffFromRC(r,0);

           if (bHomeToFirstChar) {

               toff=off;

               while (AeIsWhiteSpace(buf[toff]))

                   toff++;

               if (OldOff!=toff && !AeIsLineEnd(buf[toff])) {

                   off=toff;

               }

           }

          }

          bLineEnd=FALSE;

          if (bShift) {

              ExpandSelection(OldOff,off);

          } else {

              ClearSelection();

          }

          SetCaret();

          return;

 

ÀÏ´Ü ±âÁ¸ ¹æ½Ä´ë·Î off´Â ÁÙÀÇ Ã³À½À¸·Î À̵¿½ÃŲ´Ù. ±×¸®°í toff¿¡ ù ¹®ÀÚÀÇ À§Ä¡¸¦ ±¸Çϴµ¥ off¿¡¼­ ½ÃÀÛÇؼ­ ù ¹ø° °ø¹éÀÌ ¾Æ´Ñ À§Ä¡¸¦ ãÀ¸¸é µÈ´Ù. ±×·¯¸é off´Â Á٠óÀ½À» °¡¸®Å°°í ÀÖ°í toff´Â ù ¹®ÀÚ À§Ä¡¸¦ °¡¸®Å°°í ÀÖÀ» °ÍÀÌ´Ù. ÀÌ µÎ À§Ä¡ Áß ¾î¶² À§Ä¡¸¦ ÃëÇÒ °ÍÀΰ¡¸¸ °áÁ¤ÇÏ¸é µÈ´Ù.

HomeÅ°¸¦ ´©¸£±â ÀüÀÇ À§Ä¡ÀÎ OldOff°¡ ù ¹®ÀÚÀÎ °æ¿ì¸¸ Á¦¿ÜÇÏ°í toff¸¦ ¼±ÅÃÇÑ´Ù. ¸¸¾à ÀÌ¹Ì Ã¹ ¹®ÀÚ À§Ä¡¿¡ ¿Í ÀÖ´Â »óÅ¿¡¼­ ´Ù½Ã HomeÅ°¸¦ ´­·¶´Ù¸é À̶§´Â Á٠óÀ½À» ã¾Æ°£´Ù. ±×·¡¼­ HomeÅ°¸¦ ¹Ýº¹ÀûÀ¸·Î ´©¸£¸é Á٠óÀ½°ú ù ¹®ÀÚ »çÀ̸¦ ¿Ô´Ù °¬´Ù ÇÒ °ÍÀÌ¸ç »ç¿ëÀÚ´Â µÎ °³ÀÇ ½ÃÀÛÀ§Ä¡ Áß ¸¶À½¿¡ µå´Â À§Ä¡¸¦ ãÀ» ¶§±îÁö HomeÅ°¸¦ ´©¸£¸é µÈ´Ù.