Å°º¸µåÀÇ 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Å°¸¦ ´©¸£¸é µÈ´Ù.