我程序是不带标题栏的对话框,当运行时,不小心按下回车就退出(Esc也一样)
 
另外:不带标题栏的对话框在最小化时怎样显示标题和图标?

解决方案 »

  1.   

    重栽OnCommand
    BOOL CCount2Dlg::OnCommand(WPARAM wParam, LPARAM lParam) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(wParam==IDOK||wParam==IDCANCEL)return false;
    return CDialog::OnCommand(wParam, lParam);
    }
      

  2.   

    将OK按钮的默认按钮属性取消,可以防止按enter键退出
    或者添加IDOK和DCANCEL的消息处理函数,并且将VC自动生成的CDialog:OnOK()和CDialog::OnCancel()两行代码删掉,就可以实现你的要求
      

  3.   

    处理PreTranslateMessage函数
    if(pMsg->Message==WM_KEYDOWN)
    {
     if(pMsg->wParam==VK_RETURN) 
     XXXXXXXX
      

  4.   

    VC没有自动生成OnOK(), OnCancel()请加这两个函数
    // in your *.H
    class YourDialog : ...
    {
    ...
      virtual void OnOK();
      virtual void OnCancel();
    }// in your *.cpp
    void YourDialog::OnOK()
    {
      return; 
    }void YourDialog::OnCancel()
    {
      return;
    }肯定OK
      

  5.   

    给对话框增加一个虚函数PreTranslateMessage(MSG* pMsg) 然后添加如下代码:BOOL CEndterDlg::PreTranslateMessage(MSG* pMsg) 
    {
        if(pMsg->message==WM_KEYUP && pMsg->wParam ==VK_RETURN)
      {
    return TRUE;
      }
        return  CDialog::PreTranslateMessage(pMsg);
    }
      

  6.   

    很简单:
    重载OnOK()函数就可以了;
    void CMyDlgDLG::OnOK()
    {
    }
    ////ok////
      

  7.   

    BOOl CMyDialog::OnOk()
    {  
      //在这里屏闭
      //CDialog::OnOk();加个注释符即可
    }
      

  8.   

    重栽OnCommand
    BOOL CCount2Dlg::OnCommand(WPARAM wParam, LPARAM lParam) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(wParam==IDOK||wParam==IDCANCEL)return false;
    return CDialog::OnCommand(wParam, lParam);
    }
      

  9.   

    在OnInitDialog()中调用SetWindowText("xxxx");在最小化时也有窗体标题
    图标按照对话框向导生成的程序本身顾客已实现,你需要其他图标只需将系统默认图标替换就行了