我从中获得了自己的控制权CEdit
,它的行为符合我的预期:
#define IsSHIFTpressed() ( (GetKeyState(VK_SHIFT) & (1 << (sizeof(SHORT)*8-1))) != 0 )
void CEditEx::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if (IsCTRLpressed() && nChar == 2)
{
// Do something
return;
}
if (IsCTRLpressed() && nChar == 9)
{
// Do something
return;
}
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
但是,关于如何检测按键,我有两个问题:
- 是否可以在无需使用的情况下从内部检测到CTRL被按下?
OnChar
GetKeyState
- 是否有任何常数可以与
"b"
(2) 和"i"
(9) 进行比较?我只知道从调试到处理程序时我需要使用这些数值。