19 :
m_wVK(LOWORD(dwAccel))
36 if (_tcscmp(pszKey, _T(
"esc")) == 0)
38 else if (_tcscmp(pszKey, _T(
"enter")) == 0)
40 else if (_tcscmp(pszKey, _T(
"up")) == 0)
42 else if (_tcscmp(pszKey, _T(
"down")) == 0)
44 else if (_tcscmp(pszKey, _T(
"left")) == 0)
46 else if (_tcscmp(pszKey, _T(
"right")) == 0)
48 else if (_tcscmp(pszKey, _T(
"home")) == 0)
50 else if (_tcscmp(pszKey, _T(
"pageup")) == 0)
52 else if (_tcscmp(pszKey, _T(
"pagedown")) == 0)
54 else if (_tcscmp(pszKey, _T(
"insert")) == 0)
56 else if (_tcscmp(pszKey, _T(
"space")) == 0)
58 else if (_tcscmp(pszKey, _T(
"delete")) == 0)
60 else if (_tcscmp(pszKey, _T(
"print")) == 0)
62 else if (_tcslen(pszKey) > 1)
64 if (pszKey[0] == _T(
'f'))
66 wKey = VK_F1 + _ttoi(pszKey + 1) - 1;
68 else if (_tcsnicmp(pszKey, _T(
"num "), 4) == 0)
70 if (_tcscmp(pszKey + 4, _T(
"del")) == 0)
72 else if (_tcscmp(pszKey + 4, _T(
"*")) == 0)
74 else if (_tcscmp(pszKey + 4, _T(
"+")) == 0)
77 wKey = VK_NUMPAD0 + _ttoi(pszKey + 4);
82 if (pszKey[0] >= _T(
'a') && pszKey[0] <= _T(
'z'))
83 wKey = pszKey[0] - 0x20;
84 else if (pszKey[0] >=
'A' && pszKey[0] <=
'Z')
86 else if (pszKey[0] >= _T(
'0') && pszKey[0] <= _T(
'9'))
88 else if (pszKey[0] == _T(
'-'))
90 else if (pszKey[0] == _T(
'='))
92 else if (pszKey[0] == _T(
','))
94 else if (pszKey[0] == _T(
'.'))
96 else if (pszKey[0] == _T(
';'))
98 else if (pszKey[0] == _T(
'/'))
100 else if (pszKey[0] == _T(
'`'))
102 else if (pszKey[0] == _T(
'['))
104 else if (pszKey[0] == _T(
'\\'))
106 else if (pszKey[0] == _T(
']'))
108 else if (pszKey[0] == _T(
'\''))
147 str = _T(
"PageDown");
162 if ((vk >=
'0' && vk <=
'9') || (vk >=
'A' && vk <=
'Z'))
164 else if (vk >= VK_NUMPAD0 && vk <= VK_NUMPAD9)
165 str.Format(_T(
"Num %d"), vk - VK_NUMPAD0);
166 else if (vk == VK_MULTIPLY)
168 else if (vk == VK_ADD)
170 else if (vk == VK_DECIMAL)
172 else if (vk >= VK_F1 && vk <= VK_F12)
173 str.Format(_T(
"F%d"), vk - VK_F1 + 1);
176 TCHAR c = MapVirtualKey(vk, 2);
201 WORD wModifier = HIWORD(dwAccel);
202 WORD wVk = LOWORD(dwAccel);
204 if (wModifier == 0 && wVk == 0)
207 if (wModifier & Mod_Ctrl)
209 if (wModifier & Mod_Shift)
211 if (wModifier & Mod_Alt)
221 TCHAR szBuf[101] = { 0 };
222 WORD wModifier = Mod_None;
224 int nKeyLen = (int)_tcslen(pszAccelKey);
227 _tcscpy(szBuf, pszAccelKey);
228 CharLowerBuff(szBuf, nKeyLen);
230 LPTSTR pszBuf = szBuf;
231 LPTSTR pszKey = _tcstok(pszBuf, _T(
"+"));
234 if (_tcscmp(pszKey, _T(
"ctrl")) == 0)
236 wModifier |= Mod_Ctrl;
238 else if (_tcscmp(pszKey, _T(
"alt")) == 0)
240 wModifier |= Mod_Alt;
242 else if (_tcscmp(pszKey, _T(
"shift")) == 0)
244 wModifier |= Mod_Shift;
251 pszBuf += _tcslen(pszKey) + 1;
252 pszKey = _tcstok(pszBuf, _T(
"+"));
254 return MAKELONG(wKey, wModifier);
Accelerator management module.
WORD GetModifier() SCONST OVERRIDE
Gets the modifier keys.
static SStringT FormatAccelKey(DWORD dwAccel)
Formats an accelerator key as a string.
SAccelerator(DWORD dwAccel)
Constructor.
~SAccelerator(void)
Destructor.
static DWORD TranslateAccelKey(LPCTSTR pszKeyName)
Translates a string to an accelerator key value.
DWORD GetAcc() SCONST OVERRIDE
Gets the accelerator key value.
static WORD VkFromString(LPCTSTR pszKey)
Converts a string to a virtual key code.
static SStringT GetKeyName(WORD vk)
Converts a virtual key code to its string representation.
SStringT FormatHotkey()
Formats the accelerator key as a string.
WORD GetKey() SCONST OVERRIDE
Gets the key value.