WM_CHAR消息的问题
我想用消息框输出一个键的ASC码,为什么我运行后不会弹出消息框呢?而断点逐步运行的时候,运行到了MessageBox后又会弹出消息框呢?代码入下:caseWM_CHAR:...
我想用消息框输出一个键的ASC码,为什么我运行后不会弹出消息框呢?而断点逐步运行的时候,运行到了MessageBox后又会弹出消息框呢?
代码入下:
case WM_CHAR:
TCHAR b[30];
buf[0]=(int)wParam;
buf[1]=(int)lParam;
wsprintf(b,TEXT(" buf[0]=%d,buf[1]=%d "),buf[0],buf[1]);
::MessageBox(hwnd,b,TEXT("zq"), MB_OK);
break; 展开
代码入下:
case WM_CHAR:
TCHAR b[30];
buf[0]=(int)wParam;
buf[1]=(int)lParam;
wsprintf(b,TEXT(" buf[0]=%d,buf[1]=%d "),buf[0],buf[1]);
::MessageBox(hwnd,b,TEXT("zq"), MB_OK);
break; 展开
2个回答
展开全部
//与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和!作为两个不同的字符来处理
//假如分别按下“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和!作为两个不同的字符来处理
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
STM32F103是一款高性能的嵌入式芯片,由意法半导体(STMicroelectronics)公司生产。它是STM32系列芯片之一,具有紧凑、低功耗、高性能等特点,被广泛应用于嵌入式系统中。STM32F103的主要特点包括:1. 集成了A...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询