有个程序大概是这样的:
 输入一个数据(按回车键)程序就开始运行,运行期间有一线程,接着弹出一个对话框(对话框设有Default Button )。
问题来了,如果一开始输入数据时按2下回车,程序好像会记住回车消息,然后运行到弹出对话框时自动响应回车消息。即相当于按下回车,怎么办?怎么消除这个回车? 另辟蹊径也可,朋友们帮帮忙啊。
............
............
AfxBeginThread(ThreadProc1,hWnd);   
WinLEDCheckResult dlgResult;
dlgResult.DoModal();//如果前面多按一个回车,在此会自动响应回车
............
............

解决方案 »

  1.   

    WinLEDCheckResult 这个类里面用PretranslateMessage把回车给屏蔽掉
      

  2.   

    在你的对话框dlgResult的初始化函数中,将默认焦点不要设置在OK或Cancle上即可。
      

  3.   


    在WinLEDCheckResult类里 重载PreTranslateMessage函数BOOL WinLEDCheckResult::PreTranslateMessage(MSG* pMsg) 
    {
       if(pMsg->message == WM_KEYDOWN)
        {
            switch(pMsg->wParam)
            {
            case VK_RETURN://屏蔽回车
                return TRUE;
             }
        }
      
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  4.   

    BOOL WinLEDCheckResult::PreTranslateMessage(MSG* pMsg) 
    {//禁止回车关闭窗口
    if( pMsg->message==WM_KEYDOWN &&pMsg->wParam==VK_RETURN)
    return TRUE;
    return CDialog::PreTranslateMessage(pMsg);

    OK ! Thank you all the same .