重载OnOK()函数
里面什么语句都不要写

解决方案 »

  1.   

    你重载ONOK()函数就可以了,并在类向导里把函数该为你的。
      

  2.   

    重载OnOK()函数----->>>>>是不是还要在对话框上面放一个按钮?选择这个
    按钮的ID为:IDOK?然后把CDialog::OnOK();注释掉啊?这样是可以 但是
    我现在是不需要这个按钮啊
      

  3.   

    不是,你先选中ID_OK的按牛,在 CTRL+W,添加OnOK(),搞定
      

  4.   

    添加下面的事件处理就ok了
    BOOL CCMPPGATEDlg::PreTranslateMessage(MSG* pMsg) 
    {
      // TODO: Add your specialized code here and/or call the base class
      if( pMsg->message==WM_KEYDOWN )
        if( (pMsg->wParam==VK_ESCAPE)||(pMsg->wParam==0x0d) ) 
          return true;

      return CDialog::PreTranslateMessage(pMsg);
    }
      

  5.   

    zhuwenzheng():
    我的对话框上面一个按钮也没有,我怎么选中按钮啊?
      

  6.   

    你是不想回车时,关闭程序?
    你把OK按钮的DEFULT BUTTON 去掉,
    步骤:OK按钮右键弹出菜单中选择属性,
    在属性对话框的STYTLE中有DEFULT BUTTON 复选,
    去掉钩钩就可以了
      

  7.   

    不选按牛,直接对DIALOG重载ONOK
      

  8.   

    zhuwenzheng():
    我就是不知道,不选按钮时怎么重载啊,右击类,Add virtual function
    里,没有onok啊?
      

  9.   

    ndsm, 不会吧哥们儿,我上面写的那段程序肯定没问题,我每次都这么用的,百试不爽啊!!!
      

  10.   

    f_ky(开开):
    不好意思,老大,你的肯定对,
    我现在不会  "不选按牛,直接对DIALOG重载ONOK"
      

  11.   

    自己动手重载OnOK()函数,在Dialog类中填加一个OnOK函数就可以了,函数的说明看一下MSDN中的CDialog::OnOK()的说明。
      

  12.   

    lanfan(蓝色的帆) f_ky(开开):onok不是虚函数吗?在classview中,怎么不好通过点点鼠标,就给我
    把这个虚函数给重载呢?我不是偷懒不肯手写,我是问为什么有的
    虚函数可以不要手写,通过点鼠标就可以重载。而这个虚函数就不行呢?
      

  13.   

    你也可以在classview中找到对应的消息,重载它就可以了,好象是WM_OK也许是其他的什么:)我记不清了,反正没有就自己写,自己动手丰衣足食:)
      

  14.   

    更改你的PretranslateMessage函数啊
    BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
    {
    // CG: The following block was added by the ToolTips component.
    BOOL bHandledMsg = FALSE;    switch (pMsg->message)
        {                      
            case WM_KEYDOWN:
            {
                switch (pMsg->wParam)
                {
                    // hitting escape while searching for password edits
                    // should only stop the search for password edits and 
                    // not kill app 
                    case VK_ESCAPE://ESC键
                        bHandledMsg = TRUE;break;
                    case 13://回车
                        bHandledMsg = TRUE;break;
                    default: break;
                } // switch (pMsg->wParam)
            }
            break;
            default: 
    break;            
        } // switch (pMsg->message)                      return (bHandledMsg ? TRUE : CDialog::PreTranslateMessage(pMsg));    
      

  15.   

    从方法上讲我还是觉得用PreTranslateMessage(MSG* pMsg)更好,因为他能处理多种消息。但是要讲最快的方法呢,我觉得还有一种方法也能说得过去,就是把OK按钮的属性“Visible”去掉,并且把IDOK消息处理函数中的CDialog::OnOK();注释掉。