WM_KEYDOWN消息 与 WM_CHAR消息 有何不同

//与WM_KEYDOWN消息不同的是,WM_CHAR消息是俘获某一个字符的消息,WM_KEYDOWN消息是俘获某一个键按下的消息
//假如分别按下“q”和“shift+q”,发出的WM_KEYDOWN消息都是代表q键,而发出的WM_CHAR消息分别是“q”和“Q”
//mfc程序,在view类里添加WM_CHAR消息的响应函数OnChar()
//nChar代表某个字符,用'*'来表示
//程序运行后按下shift+1则弹出对话框
void CTestView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
if(nChar=='!')
MessageBox("!!!");
CView::OnChar(nChar, nRepCnt, nFlags);
}
//WM_KEYDOWN消息可以处理键盘上的所有键,但不能区分1和!的不同,WM_CHAR消息只能处理某个字符,将1和!作为两个不同的字符来处理

产生wm_keydown后,再由translatemessage函数把这个消息翻译为wm_char
原文地址:https://www.cnblogs.com/8586/p/1240463.html