怎样把对话框关闭叉叉变为无效?多多指教

解决方案 »

  1.   

    MessageBox里有一个就是无效的要控制别的,可有难度!
      

  2.   

    为对话框加入函数void CMydilog::OnClose()//用class wizard
    将其中自动生成的CDialog::OnClose();删掉,加上return;
    就可以使"X"没用了
      

  3.   

    你可通过重载虚拟函数WndProc或通过截获WM_CREATE消息来解决:
    LRESULT CCloseDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {
       if (message == WM_SYSCOMMAND && wParam == SC_CLOSE)
        wParam = 0;//使按钮无效
    return CDialog::WindowProc(message, wParam, lParam);
    }
    int CCloseDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    if (CDialog::OnCreate(lpCreateStruct) == -1)
    return -1;

        EnableMenuItem (::GetSystemMenu(m_hWnd, FALSE),SC_CLOSE,MF_BYCOMMAND | MF_GRAYED);//使按钮变灰 return 0;
    }