我要怎么办!
在各处搜索了一下没见到!

解决方案 »

  1.   

    屏蔽掉 WM_CLOSE 、WM_DESTROY 消息~~~
      

  2.   

    在你的对话框程序onclose函数中直接return 
    如CTestDlg
    void CTestDlg::OnClose() 
    {
     return  ;
    //CDialog::OnClose();
    }
    onclose响应的是消息wm_close
    你可以通过添加消息响应函数来获的这个函数并处理
      

  3.   

    ALT+F4 属于系统热键.通常的消息处理可能无法屏蔽掉.我曾经屏蔽过ALT+TAB,在程序中加入
    SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, TRUE, 0, 0);设为屏保.不过只有在win98下才行
      

  4.   

    在win98下
    SystemParametersInfo (SPI_SETSCREENSAVERRUNNING, TRUE, 0, 0);
    nt下很麻烦 要修改系统的DLL对应函数
      

  5.   

    //代码:
    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    pSysMenu ->DeleteMenu(nPosition,nFlags);
                      //你自己查MSDN吧
    }
      

  6.   

    在NT下屏蔽关于ALT的系统热键其实也很简单
    CMainFrame::CMainFrame() 
    {   m_nHotKeyID = 100;   BOOL m_isKeyRegistered = RegisterHotKey (GetSafeHwnd(), m_nHotKeyID,MOD_ALT, VK_F4);    ASSERT(m_isKeyRegistered != FALSE);   }   //取消   CMainFrame::~CMainFrame()   {    BOOL m_iskeyUnregistered = UnregisterHotKey(GetSafeHwnd(),    m_nHotKeyID);    ASSERT(m_isKeyUnregistered != FALSE);   }   最后需要在文件中定义ON_MESSAGE消息映射。在头文件中添加如下代码: 
      class CMainFrame : public XXXX   {    afx_msg LONG OnHotKey(WPARAM wP,LPARAM lP);   }   在CPP文件中的MESSAGE_MAP处添加代码:   ON_MESSAGE(WM_HOTKEY,OnHotKey)     然后自己加一个消息处理函数,直接返回即可.
      则该热键在进程运行时一直有效,在进程结束后其状态会被系统自动恢复。 
      

  7.   


    对不起
    我上面给出的方法行不通
    经过测试
    我重载对话框OnCancel()
    使之不调用CDialog::OnCancel();就可以了