+ -
当前位置:首页 → 问答吧 → 这个我也不知道怎么说明,应该是怎么确定按键抬起?

这个我也不知道怎么说明,应该是怎么确定按键抬起?

时间:2011-12-03

来源:互联网

串口接收的数据中加了接收键盘按下的消息
::PostMessage(AfxGetApp()-> m_pMainWnd-> m_hWnd,WM_KEYDOWN,IDC_STATIC_Rev,NULL);

响应键盘的消息函数
void CEasy_uartDlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
// TODO: Add your message handler code here and/or call default
AfxMessageBox("有反应咯");
CDialog::OnKeyDown(nChar, nRepCnt, nFlags);
}



BOOL CEasy_uartDlg::PreTranslateMessage(MSG* pMsg) 
{
// TODO: Add your specialized code here and/or call the base class
UpdateData();
if (m_sRev&&pMsg->wParam==VK_SPACE)
{
MessageBox("你的按键消息被截获");
return true;
}
return CDialog::PreTranslateMessage(pMsg);
}


问题1:响应键盘消息到底是OnKeyDown还是PreTranslateMessage?
  2:当串口收的数据有空格键的消息时弹出AfxMessaageBox,可是我像上面这样写时,每当收到有空格时就会一直弹出,是不是它认为我一直按着,没有放开?
  3:串口收的数据转化为键盘消息是不是只要个PostMessage?
谢谢各位高人能给予小弟帮助

作者: wessenjm   发布时间: 2011-12-03

忘了说了,按空格响应出来的是onkeydown里的afxmessagebox

作者: wessenjm   发布时间: 2011-12-03

WM_KEYUP

作者: smwhotjay   发布时间: 2011-12-03

改了onkeyup也一样

作者: wessenjm   发布时间: 2011-12-03

PostMessage一次弹一次,是不是PostMessage了很多次?还有
::PostMessage(AfxGetApp()-> m_pMainWnd-> m_hWnd,WM_KEYDOWN,IDC_STATIC_Rev,NULL);
WM_KEYDOWN的wParam是虚拟键代码,lParam是包含属于击键的其他信息,你的wParam传个控件ID。。。。

作者: dahaiI0   发布时间: 2011-12-03

热门下载

更多