做了这样一个例子:在对话框上画了一个静态文本,改名IDC_INPUTSTATE, 模仿QQ 正在输入。。 的功能 ,当键盘有输入时用该文本显示“正在输入。。。”, 给对话框添加了WM_CHAR消息响应函数,结果发现不响应,单步的时候发现不进消息响应函数的代码,解决方法如下
给对话框添加vritual 函数 BOOL CMy43Dlg::PreTranslateMessage(MSG* pMsg) ,在里面处理一下
BOOL CMy43Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_KEYDOWN)
{
SetDlgItemText(IDC_INPUTSTATE, "正在输入...");
return TRUE;
}
else if (pMsg->message == WM_KEYUP)
{
SetDlgItemText(IDC_INPUTSTATE, "");
}
else
{
return CDialog::PreTranslateMessage(pMsg);
}
}