BOOL CTxtImgDown000Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam);
return CDialogEx::PreTranslateMessage(pMsg);
}
void CTxtImgDown000Dlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
switch (nChar)//设断
{
case 'A':
Sleep(1);
break;
        }
CDialogEx::OnKeyDown(nChar, nRepCnt, nFlags);
}每按一次进入函数体两次,且两次的键码都是同一个

解决方案 »

  1.   

    第一次是SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam);的
    第二次是正常的按键消息
      

  2.   

    SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam); 
    无缘的有发送一次!
      

  3.   

    把SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam); 这行去掉可以只有一次,或
    SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam); 
    if (pMsg->message==WM_KEYDOWN)
    {
    SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam);
    return TRUE;
    }
    else return CDialogEx::PreTranslateMessage(pMsg); 
      

  4.   


    找到缘由了,很有缘由,拽个控件上去就必须如0楼发两次消息
    没有按钮或控件就没必要再次跟自个儿抢了
     SendMessage(pMsg->message,pMsg->wParam,pMsg->lParam);//主窗口
     return CDialogEx::PreTranslateMessage(pMsg);//焦点窗口
      

  5.   

    还有个缘由就是OnKeyDown默认收不到方向键,加上那句才断下 不知道你们平时怎么响应的
    OnChar更没戏