新建mfc工程的时候,会有一个“确定”和“取消”按钮。我发现点击窗体右上角的关闭图标,会执行oncancel函数。怎么能点击关闭图标,不执行oncancel函数呢?

解决方案 »

  1.   

    在处理OnCancel()函数时给它加个条件判断就可以了吧
      

  2.   

    你不用cancel功能时,最好在建立窗体时去掉那个cancel的X形符号。如果放上面显得别扭!
      

  3.   

    自己处理WM_CLOSE消息,类似这样
    void CXXDlg::OnClose() 
    {
    // TODO: Add your message handler code here and/or call default
    EndDialog(IDCANCEL);
    // CDialog::OnClose();
    }
      

  4.   

    重载OnCancel()虚函数,不调用父类的OnCancel()
    void CXXXDlg::OnCancel() 
    {
    // TODO: Add extra cleanup here
    // CDialog::OnCancel();
    }
      

  5.   

    重载OnCancel()虚函数,不调用父类的OnCancel()
    void CXXXDlg::OnCancel() 
    {
    // TODO: Add extra cleanup here
    // CDialog::OnCancel();
    }
      

  6.   

    或者禁用那个关闭按钮
    在初始化函数里加
    CMenu* pMenu = this->GetSystemMenu(FALSE);//获取系统菜单
    pMenu->ModifyMenu(SC_CLOSE, MF_BYCOMMAND | MF_GRAYED );//禁用关闭按钮