一般我们建立对话框时,按Enter键都会默认退出对话框,现在我不想这样,
那请问有什么的技巧可以做到呢????请高手指教!!!!!

解决方案 »

  1.   

    这.....都不会用 CSDN 的搜索么??-------------
    双击名为  IDOK 的按钮, 将里面的代码 CDialog::OnOK(); 去掉
      

  2.   

    重载 PreTranslateMessage 函数BOOL CTimingCloseComputerDlg::PreTranslateMessage(MSG* pMsg)
    {
    // TODO: 在此添加专用代码和/或调用基类
    if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN) return TRUE; return CDialog::PreTranslateMessage(pMsg);
    }
      

  3.   

    你自己处理这个函数PreTranslateMessage加入下面的代码
    if(pMsg->message==WM_KEYDOWN)
    {
      if(pMsg->wParam==VK_RETURN || pMsg->wParam==VK_ESCAPE)
        pMsg->wParam=NULL ;
    }
      

  4.   

    或者重写OnOk函数和OnCancel函数将其置空也可以。
      

  5.   

    重载 PreTranslateMessage 函数BOOL CTimingCloseComputerDlg::PreTranslateMessage(MSG* pMsg)
    {
    if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_RETURN)
            return TRUE; return CDialog::PreTranslateMessage(pMsg);
    }重写OnOk函数
    将里面的代码 CDialog::OnOK(); 去掉
      

  6.   

    同意 重写OnOk函数
    将里面的代码 CDialog::OnOK(); 去掉
      

  7.   

    重载OnOK()如下
    void CMyDlg:: OnOK()
    {
       CWnd *pWnd = GetFocus(); 
       ASSERT (pWnd); 
       if (IDOK != pWnd ->GetDlgCtrlID()) 
          return;
       else
          CDialog::OnOK(); 
    }
      

  8.   

    在资源中,选中ok 按钮 将它的defualt button 属性去掉。
      

  9.   

    把你的IDOK按钮的默认给去掉.
      

  10.   

    删掉OK按钮或删除OnOk函数中的CDialog::OnOk函数.
      

  11.   

    http://www.xiaozhou.net/cooldog/blogview.asp?logID=24&cateID=13
      

  12.   

    按钮->属性->“默认按钮”不选中