ÀÌÁ¦ ´ÜÃàŰ´Â ½ÇÇàÁß¿¡ ¾ðÁ¦¶óµµ Ãß°¡, »èÁ¦, ÆíÁýÇÒ ¼ö ÀÖ´Â ´ë»óÀ̹ǷΠ»ç¿ëÀÚ°¡ ¿øÇϴ´ë·Î ¼öÁ¤ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ´ÜÃàŰ ÆíÁý ±â´ÉÀº ÇϳªÀÇ µ¶¸³µÈ ÀÚ·á °ü¸® ±â´ÉÀ̹ǷΠÀ̸¦ Àü´ãÇÒ º°µµÀÇ Å¬·¡½º¸¦ ÀÛ¼ºÇϱâ·Î ÇÑ´Ù. ShortCut.h¿¡ ´ÜÃàŰ ÁýÇÕÀ» Á¤ÀÇÇÏ°í °ü¸®Çϴ Ŭ·¡½º¸¦ Á¤ÀÇÇÑ´Ù.
#define SC_SHIFT 0x01
#define SC_CTRL 0x02
#define SC_ALT 0x04
// ´ÜÃàŰ ÇϳªÀÇ Á¤º¸. Á¶ÇÕŰ+°¡»óŰ·Î ±¸¼ºµÈ ´ÜÃàŰ ÀԷ½à ½ÇÇàµÉ
// ¸Þ´ºÇ׸ñ, ¶Ç´Â ¸ÅÅ©·Î ¸í·ÉÀ» ±â¾ïÇÑ´Ù.
struct SShortCut
{
UINT vk;
DWORD Flag;
UINT id;
TCHAR *Com;
};
// ´ÜÃàŰ °ü¸® Ŭ·¡½º
class CShortCut
{
public:
SShortCut *arShortCut;
CShortCut();
~CShortCut();
void Exit();
void Init();
void Add(SShortCut *sc);
void Delete(int idx);
void Modify(int idx,SShortCut *sc);
int Find(UINT vk,DWORD Flag);
int Find(UINT id,TCHAR *Com);
void Load(TCHAR *Key);
void Save(TCHAR *Key);
};
SShortCut ±¸Á¶Ã¼´Â ´ÜÃàŰ Çϳª¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áö´Âµ¥ vk¿Í Flag·Î ¾î¶² ۰¡ ´·¯Á³À» ¶§ ÀÌ ´ÜÃà۸¦ »ç¿ëÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù. id¿Í ComÀº ´ÜÃà۰¡ ÀԷµǾúÀ» ¶§ÀÇ µ¿ÀÛÀ» ÁöÁ¤Çϴµ¥ id´Â ¸Þ´º ¸í·ÉÀÇ IDÀ̸ç ÀÌ °ªÀÌ 0ÀÎ °æ¿ì´Â ComÀÇ ¸ÅÅ©·Î ¸í·ÉÀÌ ½ÇÇàµÈ´Ù. ¸í·ÉÀº ¸ÅÅ©·Î ±¸¹®À̹ǷΠ¿©·¯ °³ÀÇ ¸í·ÉÀ» ÇϳªÀÇ ´ÜÃàŰ¿¡ ³Ö¾î µÑ ¼ö ÀÖ´Ù. ¸ÅÅ©·ÎÀÇ ±æÀÌ´Â °¡º¯ÀûÀ̹ǷΠComÀº µ¿ÀûÀ¸·Î ÇÒ´çÇϱâ·Î ÇÑ´Ù.
CShortCut Ŭ·¡½º´Â ÀÌ·± ´ÜÃàŰÀÇ ÁýÇÕÀ» °ü¸®ÇÑ´Ù. Ãß°¡, »èÁ¦, °Ë»ö µîÀÇ ÀϹÝÀûÀÎ ÀÚ·á °ü¸® ±â´ÉÀÌ ÀÌ Å¬·¡½º¿¡ ÀÛ¼ºµÈ´Ù. ¾Õ Àå¿¡¼ ¸¸µé¾ú´ø CMacro Ŭ·¡½º¿Í ±¸Á¶´Â °ÅÀÇ µ¿ÀÏÇÏ´Ù. ´ÜÃàŰÀÇ °³¼ö°¡ °¡º¯ÀûÀ̱⠶§¹®¿¡ ´ÜÃàŰ ¹è¿µµ µ¿ÀûÀ¸·Î °ü¸®ÇØ¾ß ÇÑ´Ù. »ý¼ºÀÚ, ÆÄ±«ÀÚ´Â ´ÙÀ½°ú °°ÀÌ ÀÛ¼ºÇÑ´Ù.
CShortCut::CShortCut()
{
arShortCut=NULL;
}
CShortCut::~CShortCut()
{
Exit();
}
void CShortCut::Exit()
{
int i;
// ´ÜÃàŰ ¹è¿°ú ¸ÅÅ©·Î ¹®ÀÚ¿À» ÇØÁ¦ÇÑ´Ù.
if (arShortCut) {
for (i=0;arShortCut[i].vk;i++) {
if (arShortCut[i].Com) {
free(arShortCut[i].Com);
}
}
free(arShortCut);
arShortCut=NULL;
}
}
»ý¼ºÀÚ´Â ¿ÏÀüÈ÷ ºó »óÅ·Π´ÜÃàŰ ¹è¿À» ÃʱâÈÇÑ´Ù. ÀÌ ¹è¿À» ÃʱâÈÇÏ´Â ÀÛ¾÷Àº Init¿¡ ó¸®Ç쵂 ¸¸¾à »ç¿ëÀÚ°¡ ´ÜÃà۸¦ ÀçÁ¤ÀÇÇÏ¸é ·¹Áö½ºÆ®¸®ÀÇ ÆíÁýµÈ ´ÜÃàŰ ¸ñ·ÏÀ¸·ÎºÎÅÍ ÃʱâȵȴÙ. ÆÄ±«ÀÚ´Â ¸ðµç ´ÜÃà۸¦ ÇØÁ¦Çϴµ¥ À̶§ °¢ ´ÜÃàŰ¿¡ ÀúÀåµÈ ¸ÅÅ©·Î ¹®ÀÚ¿µµ °°ÀÌ ÇØÁ¦ÇØ¾ß ÇÑ´Ù.
µðÆúÆ® ´ÜÃàŰ ¸ñ·ÏÀº Init ÇÔ¼ö¿¡¼ ÃʱâÈÇÑ´Ù. ÀÌ ÇÔ¼ö°¡ ´ç±ÙÀÇ Ãʱ⠴ÜÃàŰ ¸ñ·ÏÀ» »ý¼ºÇÏ´Â ÀÛ¾÷À» ÇÑ´Ù.
// µðÆúÆ® ´ÜÃàŰ ¸ñ·Ï
SShortCut DefaultShortCut[]={
{'N', SC_CTRL, IDM_FILE_NEW, NULL},
{'O', SC_CTRL, IDM_FILE_OPEN, NULL},
{VK_F4, SC_CTRL, IDM_FILE_CLOSE, NULL},
{'S', SC_CTRL, IDM_FILE_SAVE, NULL},
{'S', SC_CTRL | SC_SHIFT, IDM_FILE_SAVEALL, NULL},
{'C', SC_CTRL | SC_ALT, IDM_FILE_CLOSEALL, NULL},
{'O', SC_CTRL | SC_ALT, IDM_FILE_FTPOPEN, NULL},
{'P', SC_CTRL, IDM_FILE_PRINT, NULL},
{VK_F4, SC_ALT, IDM_FILE_EXIT, NULL},
{'Z', SC_CTRL, IDM_EDIT_UNDO, NULL},
{'Y', SC_CTRL, IDM_EDIT_REDO, NULL},
{'C', SC_CTRL, IDM_EDIT_COPY, NULL},
{'X', SC_CTRL, IDM_EDIT_CUT, NULL},
{'V', SC_CTRL, IDM_EDIT_PASTE, NULL},
{'A', SC_CTRL, IDM_EDIT_SELALL, NULL},
{'C', SC_CTRL | SC_SHIFT, IDM_EDIT_COPYAPPEND, NULL},
{'X', SC_CTRL | SC_SHIFT, IDM_EDIT_CUTAPPEND, NULL},
{'U', SC_CTRL, IDM_EDIT_UPPER, NULL},
{'L', SC_CTRL, IDM_EDIT_LOWER, NULL},
{'K', SC_CTRL, IDM_EDIT_INSERTSPECIAL, NULL},
{'M', SC_CTRL, IDM_EDIT_COMMENT, NULL},
{'M', SC_CTRL | SC_SHIFT, IDM_EDIT_UNCOMMENT, NULL},
{'I', SC_CTRL, IDM_EDIT_COPYUP, NULL},
{'I', SC_CTRL | SC_SHIFT, IDM_EDIT_COPYDOWN, NULL},
{'C', SC_ALT, IDM_EDIT_COLUMN, NULL},
{'X', SC_ALT, IDM_EDIT_COMMODE, NULL},
{'W', SC_CTRL, IDM_VIEW_WORDWRAP, NULL},
{'E', SC_CTRL, IDM_VIEW_CODE, NULL},
{'H', SC_CTRL, IDM_VIEW_HEXA, NULL},
{'F', SC_CTRL, IDM_SEARCH_FIND, NULL},
{VK_F3, 0, IDM_SEARCH_NEXT, NULL},
{VK_F3, SC_SHIFT, IDM_SEARCH_PREV, NULL},
{VK_F3, SC_CTRL, IDM_SEARCH_WORD, NULL},
{VK_F3, SC_CTRL | SC_SHIFT, IDM_SEARCH_WORDUP, NULL},
{'R', SC_CTRL, IDM_SEARCH_REPLACE, NULL},
{VK_F2, 0, IDM_SEARCH_NEXTMARK, NULL},
{VK_F2, SC_SHIFT, IDM_SEARCH_PREVMARK, NULL},
{VK_F2, SC_CTRL, IDM_SEARCH_TOGGLEMARK, NULL},
{'G', SC_CTRL, IDM_SEARCH_GOTOLINE, NULL},
{'B', SC_CTRL, IDM_SEARCH_PAREN, NULL},
{'B', SC_CTRL | SC_SHIFT, IDM_SEARCH_PARENSEL, NULL},
{'Q', SC_CTRL, IDM_SEARCH_LASTEDIT, NULL},
{'F', SC_CTRL | SC_SHIFT, IDM_SEARCH_FILES, NULL},
{VK_F4, 0, IDM_SEARCH_INST, NULL},
{'T', SC_CTRL, IDM_TOOL_CONFIG, NULL},
{'M', SC_CTRL | SC_ALT, IDM_TOOL_MACRO, NULL},
{'R', SC_CTRL | SC_ALT, IDM_TOOL_READMODE, NULL},
{'P', SC_CTRL | SC_ALT, IDM_TOOL_PARA, NULL},
{VK_F1, 0, IDM_HELP_INDEX, NULL},
{VK_F6, 0, IDM_WIN_NEXTVIEW, NULL},
{VK_F6, SC_SHIFT, IDM_WIN_PREVVIEW, NULL},
{'1', SC_ALT, IDM_FONT_1, NULL},
{'2', SC_ALT, IDM_FONT_2, NULL},
{'3', SC_ALT, IDM_FONT_3, NULL},
{'4', SC_ALT, IDM_FONT_4, NULL},
{'5', SC_ALT, IDM_FONT_5, NULL},
{'6', SC_ALT, IDM_FONT_6, NULL},
{'7', SC_ALT, IDM_FONT_7, NULL},
{'8', SC_ALT, IDM_FONT_8, NULL},
{'9', SC_ALT, IDM_FONT_9, NULL},
{'0', SC_ALT, IDM_FONT_10, NULL},
{'1', SC_CTRL | SC_ALT, 45000, NULL},
{'2', SC_CTRL | SC_ALT, 45001, NULL},
{'3', SC_CTRL | SC_ALT, 45002, NULL},
{'4', SC_CTRL | SC_ALT, 45003, NULL},
{'5', SC_CTRL | SC_ALT, 45004, NULL},
{'6', SC_CTRL | SC_ALT, 45005, NULL},
{'7', SC_CTRL | SC_ALT, 45006, NULL},
{'8', SC_CTRL | SC_ALT, 45007, NULL},
{'9', SC_CTRL | SC_ALT, 45008, NULL},
{'0', SC_CTRL | SC_ALT, 45009, NULL},
{'1', SC_ALT | SC_SHIFT, IDM_SYN_CPP, NULL},
{'2', SC_ALT | SC_SHIFT, IDM_SYN_HTML, NULL},
{'3', SC_ALT | SC_SHIFT, IDM_SYN_SQL, NULL},
{'0', SC_ALT | SC_SHIFT, IDM_SYN_NONE, NULL},
{188, SC_CTRL | SC_SHIFT, IDM_LINE_1, NULL},
{190, SC_CTRL | SC_SHIFT, IDM_LINE_2, NULL},
{191, SC_CTRL | SC_SHIFT, IDM_LINE_3, NULL},
{186, SC_CTRL | SC_SHIFT, IDM_LINE_4, NULL},
{222, SC_CTRL | SC_SHIFT, IDM_LINE_5, NULL},
{'1', SC_CTRL, 0, "gomark 1"},
{'2', SC_CTRL, 0, "gomark 2"},
{'3', SC_CTRL, 0, "gomark 3"},
{'4', SC_CTRL, 0, "gomark 4"},
{'5', SC_CTRL, 0, "gomark 5"},
{'6', SC_CTRL, 0, "gomark 6"},
{'7', SC_CTRL, 0, "gomark 7"},
{'8', SC_CTRL, 0, "gomark 8"},
{'9', SC_CTRL, 0, "gomark 9"},
{'0', SC_CTRL, 0, "gomark 0"},
{'1', SC_CTRL | SC_SHIFT, 0, "setmark 1"},
{'2', SC_CTRL | SC_SHIFT, 0, "setmark 2"},
{'3', SC_CTRL | SC_SHIFT, 0, "setmark 3"},
{'4', SC_CTRL | SC_SHIFT, 0, "setmark 4"},
{'5', SC_CTRL | SC_SHIFT, 0, "setmark 5"},
{'6', SC_CTRL | SC_SHIFT, 0, "setmark 6"},
{'7', SC_CTRL | SC_SHIFT, 0, "setmark 7"},
{'8', SC_CTRL | SC_SHIFT, 0, "setmark 8"},
{'9', SC_CTRL | SC_SHIFT, 0, "setmark 9"},
{'0', SC_CTRL | SC_SHIFT, 0, "setmark 0"},
{'A', 0, 0, "select word;copy"},
{'A', SC_SHIFT, 0, "select word"},
{'B', 0, IDM_SEARCH_PAREN, NULL},
{'B', SC_SHIFT, IDM_SEARCH_PARENSEL, NULL},
{'C', 0, IDM_EDIT_COPY, NULL},
{'C', SC_SHIFT, IDM_EDIT_COPYAPPEND, NULL},
{'D', 0, 0, "movesel end;delete"},
{'D', SC_SHIFT, 0, "movesel paraend;delete"},
{'E', 0, 0, "select line;delete"},
{'E', SC_SHIFT, 0, "select para;delete"},
{'F', 0, IDM_SEARCH_WORD, NULL},
{'F', SC_SHIFT, IDM_SEARCH_WORDUP, NULL},
{'G', 0, 0, "move down;move end"},
{'H', 0, 0, "movesel home;delete"},
{'H', SC_SHIFT, 0, "movesel parahome;delete"},
{'I', 0, IDM_EDIT_COPYUP, NULL},
{'I', SC_SHIFT, IDM_EDIT_COPYDOWN, NULL},
{'J', 0, 0, "select para;copy;move parahome;paste;move prevpara"},
{'J', SC_SHIFT, 0, "move nextpara;select para;copy;move parahome;paste;move prevpara 2;"},
{'L', 0, IDM_EDIT_LOWER, NULL},
{'L', SC_SHIFT, 0, "select word;convert lower"},
{'O', 0, 0, "select line;copy"},
{'O', SC_SHIFT, 0, "select line"},
{'P', 0, 0, "select para;copy"},
{'P', SC_SHIFT, 0, "select para"},
{'Q', 0, IDM_SEARCH_LASTEDIT, NULL},
{'U', 0, IDM_EDIT_UPPER, NULL},
{'U', SC_SHIFT, 0, "select word;convert upper"},
{'V', 0, IDM_EDIT_PASTE, NULL},
{'W', 0, IDM_VIEW_WORDWRAP, NULL},
{'X', 0, IDM_EDIT_CUT, NULL},
{'X', SC_SHIFT, IDM_EDIT_CUTAPPEND, NULL},
{'Y', 0, IDM_EDIT_REDO, NULL},
{'Z', 0, IDM_EDIT_UNDO, NULL}
};
void CShortCut::Init()
{
int i;
Exit();
arShortCut=(SShortCut *)malloc(256*sizeof(SShortCut));
memset(arShortCut,0,256*sizeof(SShortCut));
for (i=0;i<ARSIZE(DefaultShortCut);i++) {
Add(&DefaultShortCut[i]);
}
}
DefaultShortCut ¹è¿ÀÌ ´ç±ÙÀÇ ±âº» ´ÜÃàŰ ¸ñ·ÏÀ̸ç Áö±Ý±îÁö ¸¸µç ¸Þ´º ¸í·Éµé¿¡ ´ëÇÑ ´ÜÃà۰¡ ÀÌ ¹è¿¿¡ Á¤ÀǵǾî ÀÖ´Ù. Init ÇÔ¼ö´Â ±âº»ÀûÀ¸·Î 256°³ÀÇ ´ÜÃà۸¦ ±â¾ïÇÒ ¼ö ÀÖ´Â ¹è¿À» ÇÒ´çÇϰí ÀÌ ¹è¿ÀÇ ³»¿ë ±×´ë·Î ´ÜÃà۸¦ ÃʱâÈÇÑ´Ù. ÀçÃʱâ鵃 ¶§¸¦ ´ëºñÇØ¼ Exit¸¦ ¸ÕÀú È£ÃâÇÏ¿© ÀÌ¹Ì ÇÒ´çµÈ ¹è¿À» ¸ÕÀú ÇØÁ¦Çß´Ù. ¸Þ´º ¸®¼Ò½º¿¡ Á¤ÀǵǾî ÀÖ´Â ´ÜÃàŰ ¸ñ·ÏÀ» ±×´ë·Î °¡Áö°í ÀÖÀ¸¸ç ¶ÇÇÑ ¸í·É ¸ðµå¿¡¼ÀÇ ´ÜÃàŰ´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÏ¿´´Ù. ¸í·É ¸ðµå¿¡ ´ëÇØ¼´Â Â÷ÈÄ ¼³¸íÇϱâ·Î ÇÑ´Ù.
|
°¡»óŰ |
´Üµ¶ ÀԷ½à |
Shift ÀԷ½à |
|
A |
´Ü¾î º¹»ç |
´Ü¾î ¼±Åà |
|
B |
°ýÈ£ ã±â |
°ýÈ£ ¼±Åà |
|
C |
º¹»ç |
º¹»çÇØ¼ Ãß°¡ |
|
D |
ÁÙ ³¡±îÁö »èÁ¦ |
¹®´Ü ³¡±îÁö »èÁ¦ |
|
E |
ÁÙ »èÁ¦ |
¹®´Ü »èÁ¦ |
|
F |
ÇöÀç ´Ü¾î ´ÙÀ½ |
ÇöÀç ´Ü¾î À§·Î |
|
G |
´ÙÀ½ÁÙ ³¡À¸·Î |
|
|
H |
Á٠óÀ½±îÁö »èÁ¦ |
¹®´Ü óÀ½±îÁö »èÁ¦ |
|
I |
ÀÁÙ ¹®ÀÚ º¹»ç |
¾Æ·¡ÁÙ ¹®ÀÚ º¹»ç |
|
J |
ÇöÀç ¹®´Ü ¹Ýº¹ |
´ÙÀ½ ¹®´Ü ¹Ýº¹ |
|
K |
|
|
|
L |
¼Ò¹®ÀÚ·Î |
´Ü¾î ¼Ò¹®ÀÚ·Î |
|
M |
|
|
|
N |
|
|
|
O |
ÁÙ º¹»ç |
ÁÙ ¼±Åà |
|
P |
¹®´Ü º¹»ç |
¹®´Ü ¼±Åà |
|
Q |
ÃÖ±Ù ÆíÁý À§Ä¡·Î |
|
|
R |
|
|
|
S |
|
|
|
T |
|
|
|
U |
´ë¹®ÀÚ·Î |
´Ü¾î ´ë¹®ÀÚ·Î |
|
V |
ºÙ¿©³Ö±â |
|
|
W |
ÀÚµ¿ °³Çà Åä±Û |
|
|
X |
Àß¶ó³»±â |
Àß¶ó¼ Ãß°¡ |
|
Y |
Àç½ÇÇà |
|
|
Z |
Ãë¼Ò |
|
Init ÇÔ¼ö°¡ Á¤ÀÇÇÏ´Â ´ÜÃàŰ ¸ñ·ÏÀº ¾îµð±îÁö³ª ´ç±ÙÀÌ Ã³À½ ¼³Ä¡µÇ¾úÀ» ¶§ÀÇ µðÆúÆ®ÀÏ »ÓÀÌ¸ç »ç¿ëÀÚ´Â ¸¶À½¿¡ ´Ù´Â´ë·Î ¼ö½Ã·Î ´ÜÃà۸¦ ÆíÁýÇÒ ¼ö ÀÖ´Ù.
CShortCut Ŭ·¡½ºÀÇ ³ª¸ÓÁö ¸â¹ö ÇÔ¼öµéÀº ¹è¿ ³»ÀÇ ´ÜÃà۸¦ °ü¸®Çϴµ¥ ÇÔ¼öÀÇ À̸§¸¸ ºÁµµ ¾î¶² µ¿ÀÛÀ» ÇÏ´ÂÁö ½±°Ô ¾Ë ¼ö ÀÖ´Ù.
void CShortCut::Add(SShortCut *sc)
{
int last,size;
// ¹è¿ÀÇ ³¡ À妽º ãÀ½
if (arShortCut==NULL) {
arShortCut=(SShortCut *)malloc(256*sizeof(SShortCut));
memset(arShortCut,0,256*sizeof(SShortCut));
last=0;
} else {
for (last=0;;last++) {
if (arShortCut[last].vk == 0) {
break;
}
}
// ¹è¿ Å©±â °ü¸®
size=_msize(arShortCut)/sizeof(arShortCut[0]);
if (last == size-1) {
size+=10;
arShortCut=(SShortCut *)realloc(arShortCut,size*sizeof(SShortCut));
memset(arShortCut+size-10,0,10*sizeof(SShortCut));
}
}
// ¸ÅÅ©·Î ¸í·ÉÀÌ¸é µ¿Àû ÇÒ´çÇÑ ÈÄ ¸ÅÅ©·Î ¹®ÀÚ¿À» º¹»çÇÑ´Ù.
arShortCut[last]=*sc;
if (sc->id == 0) {
arShortCut[last].Com=(TCHAR *)malloc(lstrlen(sc->Com)+1);
lstrcpy(arShortCut[last].Com,sc->Com);
} else {
arShortCut[last].Com=NULL;
}
}
void CShortCut::Delete(int idx)
{
int i;
// ¸ÅÅ©·Î ¹®ÀÚ¿ ÇØÁ¦
if (arShortCut[idx].Com) {
free(arShortCut[idx].Com);
}
// µÚÂÊ ´ÜÃà۸¦ ÇÑľ¿ ¾ÕÀ¸·Î ¿Å±ä´Ù.
for (i=idx+1;;i++) {
arShortCut[i-1]=arShortCut[i];
if (arShortCut[i].vk==0) {
break;
}
}
}
void CShortCut::Modify(int idx,SShortCut *sc)
{
// ÀÌÀü ´ÜÃàŰ¿¡ ÇÒ´çµÈ ¸í·ÉÀÌ ÀÖÀ¸¸é ÀÏ´Ü ÇØÁ¦
if (arShortCut[idx].Com) {
free(arShortCut[idx].Com);
arShortCut[idx].Com=NULL;
}
arShortCut[idx]=*sc;
// ¸ÅÅ©·Î ¸í·ÉÀÌ¸é ¸Þ¸ð¸®¸¦ ´Ù½Ã ÇÒ´çÇÑ ÈÄ º¹»çÇÑ´Ù.
if (sc->id == 0) {
arShortCut[idx].Com=(TCHAR *)malloc(lstrlen(sc->Com)+1);
lstrcpy(arShortCut[idx].Com,sc->Com);
}
}
// °¡»ó Ű¿Í Ç÷¡±×°¡ °°Àº ´ÜÃàŰ ¹øÈ£ ãÀ½
int CShortCut::Find(UINT vk,DWORD Flag)
{
int i;
for (i=0;arShortCut[i].vk;i++) {
if (arShortCut[i].vk == vk && (arShortCut[i].Flag & 0x7) == Flag) {
return i;
}
}
return -1;
}
// ¸í·É ¶Ç´Â ¸ÅÅ©·Î ¸í·ÉÀÌ °°Àº ´ÜÃàŰ ¹øÈ£ ãÀ½
int CShortCut::Find(UINT id,TCHAR *Com)
{
int i;
for (i=0;arShortCut[i].vk;i++) {
if (id == 0) {
if (arShortCut[i].id==0 && lstrcmp(arShortCut[i].Com,Com)==0) {
return i;
}
} else {
if (arShortCut[i].id==id) {
return i;
}
}
}
return -1;
}
void CShortCut::Load(TCHAR *Key)
{
TCHAR szKey[MAX_PATH];
TCHAR szSub[MAX_PATH];
TCHAR Com[1024];
SShortCut sc;
int i,Num;
lstrcpy(szKey,Key);
lstrcat(szKey,"ShortCut");
Num=SHRegReadInt(SHCU,szKey,"Num",0);
for (i=0;i<Num;i++) {
wsprintf(szSub,"Key%d",i);
sc.vk=SHRegReadInt(SHCU,szKey,szSub,0);
wsprintf(szSub,"Flag%d",i);
sc.Flag=SHRegReadInt(SHCU,szKey,szSub,0);
wsprintf(szSub,"id%d",i);
sc.id=SHRegReadInt(SHCU,szKey,szSub,0);
if (sc.id == 0) {
wsprintf(szSub,"Com%d",i);
SHRegReadString(SHCU,szKey,szSub,"",Com,1024);
sc.Com=Com;
}
Add(&sc);
}
}
void CShortCut::Save(TCHAR *Key)
{
TCHAR szKey[MAX_PATH];
TCHAR szSub[MAX_PATH];
int i;
lstrcpy(szKey,Key);
lstrcat(szKey,"ShortCut");
for (i=0;arShortCut[i].vk;i++) {
wsprintf(szSub,"Key%d",i);
SHRegWriteInt(SHCU,szKey,szSub,arShortCut[i].vk);
wsprintf(szSub,"Flag%d",i);
SHRegWriteInt(SHCU,szKey,szSub,arShortCut[i].Flag);
wsprintf(szSub,"id%d",i);
SHRegWriteInt(SHCU,szKey,szSub,arShortCut[i].id);
if (arShortCut[i].id == 0) {
wsprintf(szSub,"Com%d",i);
SHRegWriteString(SHCU,szKey,szSub,arShortCut[i].Com);
}
}
SHRegWriteInt(SHCU,szKey,"Num",i);
}
µ¿ÀûÀÎ ¹è¿ °ü¸®¸¦ À§ÇØ ÀçÇÒ´çÀ» ºó¹øÇÏ°Ô Çϴµ¥ ¹è¿ Å©±â¸¦ Á¶»çÇϱâ À§ÇØ _msize ÇÔ¼ö¸¦ »ç¿ëÇϹǷΠ¹è¿ Å©±â´Â º°µµ·Î ±â¾ïÇÏÁö ¾Ê¾Ò´Ù. ´ÜÃàŰ Á¶ÀÛÀº ±×¸® ÀÚÁÖ ÀÖ´Â ÀÏÀÌ ¾Æ´Ï¹Ç·Î ºü¸¥ ¼Óµµº¸´Ù´Â ÀÛÀº Å©±â¿¡ ÁßÁ¡À» µÎ¾ú´Ù. Load, Save ÇÔ¼ö´Â ´ÜÃàŰ ¹è¿À» ·¹Áö½ºÆ®¸®¿¡ ÀúÀåÇϰųª º¹±¸ÇÑ´Ù.