在一个程序中创建了一个非模式对话框Dlg后,除了使用Dlg.ShowWindow(SW_HIDE)或者SendMessage(...)这两种方法把他隐藏外,还可以用什么方法。主要是因为我在多文档框架上创建的对话框其它都正常,可是按ESC键这个对话框就消失掉了,现在想知道不消失的方法,而且不想截掉按ESC键的消息。谢谢

解决方案 »

  1.   

    你只要在你的对话框上加一个按钮,ID设为IDCANCEL,
    然后双击它,为其添加函数:OnCancel() ;
    然后在对应的函数里void CDlg::OnOK() 
    {
       return; //加上此句
    CDialog::OnOK();//或注释掉此句
    }然后在资源里将那个按钮删了.这样ESC就失效了
      

  2.   

    void CDlg::OnCancel() 
    {
       return; //加上此句
    CDialog::OnCancel();//或注释掉此句
    }
      

  3.   

    我说的不是要关掉它,而只是要把它隐藏,就象ShowWindow(SW_HIDE);