如何在对话框中响应键盘按键 ?

来源:百度知道 编辑:UC知道 时间:2024/07/02 20:12:03
我主要是想在屏幕上输出一系列汉字
每输出一个字后等待键盘输入一个数字(不用显示在屏幕上,仅需记录数字)
然后在显示下一个字,以此类推。。。
////////////
输出一个汉字
MSG msg;
while(GetMessage(&msg,NULL,NULL,NULL){ //我这么弄后只是输出上面的
TranslateMessage(&msg); //一个汉字,按键后也不走呀
…… //对拦截的消息进行处理
DispathchMessage(&msg);
}
输出下一个汉字
////////////////////////////

按照网上的说法我又重载PreTranslateMessage, 但不知道怎么用
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message == WM_KEYDOWN)
{
///或者直接调用OnKeyDown
CString strwParam;
strwParam.Format("%d ",pMsg->wParam);
CDC* pDC = GetDC();
pDC->TextOut(10,10,strwParam);
ReleaseDC(pDC);
}
return CDialog::PreTranslateMessage(pMsg);
}
"点击语言栏,在缩小的语言栏上找"什么意思呀?
能具体一点吗?
谢谢了。

这样吧 你在PreTranslateMessage里面 书写汉字好了.

判断pMsg->wParam是不是数字按键 '1' 2 3 4 ... '9' 以及NUM_1...
(我不确定键盘码)

如果是就输出一个汉字,当然你这里要设计好这个输出汉字的代码了.
仅是textout(str)的话 就只是固定的汉字了.

如果不是return CDialog::PreTranslateMessage(pMsg);

点击语言栏,在缩小的语言栏上找