各位高手:
  我有一个对话框(是模式对话框),标题栏上有最小化按钮,现在当单击(左击或右击)时,都弹出一个菜单(什么“还原”,“移动”...的菜单项);我现在想禁止不弹出这个对话框,请问该怎么做?谢谢!在线等。
同时,在对话对话框标题栏上只有最小化按钮,也想不要关闭按钮(现在最小化按钮和关闭按钮都有);我已在对话框属性中也没有选Maximize box;可还是没有去掉“关闭”按钮。请问怎么做?

解决方案 »

  1.   

    如果仅仅是去掉弹出菜单的话,可以这样,比如要在右键菜单中去掉弹出菜单,可以重载ON_WM_NCRBUTTONDOWN消息,在OnNcRButtonDown函数直接返回就可。
      

  2.   

    楼上:softofsea
    我现在这样做: 
    void CAFC_SCDlg::OnNcLButtonDown(UINT nHitTest, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    //if(nHitTest==HTCAPTION)
    return;

    CDialog::OnNcLButtonDown(nHitTest, point);
    }
    怎么还是不行呀!
      

  3.   

    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    pSysMenu->DeleteMenu(SC_CLOSE, MF_BYCOMMAND);
    }
    例如这样就可以让X那个button变灰,其它
    #define SC_SIZE         0xF000
    #define SC_MOVE         0xF010
    #define SC_MINIMIZE     0xF020
    #define SC_MAXIMIZE     0xF030
    #define SC_NEXTWINDOW   0xF040
    #define SC_PREVWINDOW   0xF050
    #define SC_CLOSE        0xF060
    有就都删掉