我们知道用SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE) & ~WS_SYSMENU);把WS_SYSMENU风格去除可以把标题栏上的最小,大化按钮去掉,可是去掉他们的同时也把标题栏的右键菜单去掉了,
有没有办法把标题栏上的最小,大化灯按钮全去掉,但是保留标题栏的右键菜单??
----------谢谢,欢迎讨论~!

解决方案 »

  1.   

    WS_SYSMENU和最大化、最小化按钮没关系吧
    他是和系统菜单和关闭按钮有关
    最大化、最小化按钮的风格是WS_MINIMIZEBOX、WS_MAXIMIZEBOX
      

  2.   


    自己编辑系统菜单
    一下是MFC向导生成的框架中向系统菜单中添加 关于 项的代码
    你可以参考这个实现CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    CString strAboutMenu;
    strAboutMenu.LoadString(IDS_ABOUTBOX);
    if (!strAboutMenu.IsEmpty())
    {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
    }
      

  3.   

    恩,差不多,
    那你的意思是(只能?)用~WS_SYSMENU去掉关闭按钮,(因为去掉WS_SYSMENU风格标题栏右键菜单就没了),然后自己写想OnContextMenu之类的代码编辑系统菜单项并显示?
      

  4.   

    WS_SYSMENU和最大化、最小化按钮没关系吧
    他是和系统菜单和关闭按钮有关
    最大化、最小化按钮的风格是WS_MINIMIZEBOX、WS_MAXIMIZEBOX
    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
        CString strAboutMenu;
        strAboutMenu.LoadString(IDS_ABOUTBOX);
        if (!strAboutMenu.IsEmpty())
        {
            pSysMenu->AppendMenu(MF_SEPARATOR);
            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
        }
    }
      

  5.   

    设置窗体风格为WS_SYSMENU应该就可以满足你的要求了吧
      

  6.   

    long  Style  =  ::GetWindowLong(*this,  GWL_STYLE);  
    SetWindowLong(this-> m_hWnd,GWL_STYLE,(LONG)Style^WS_SYSMENU);
    RECT rect;
    this->GetWindowRect(&rect);
    this->SetWindowPos(NULL,rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top,SWP_FRAMECHANGED);
    如果要弹出和系统菜单一样的菜单,你要自己在点击边框和任务栏图标的时候写弹出菜单。。
      

  7.   

    恩,谢(向立天) 我现在的要求是:
    1.去掉标题栏中的关闭按钮;
    2.保留标题栏的右键菜单中的关闭菜单项;---------------------------
    对于1,我的问题是:只能通过WS_SYSMENU风格去掉关闭按钮?
    if(是)
    {
        //此时影响到2,即标题栏的右键菜单整个都被丢弃了(右键根本出不来右键菜单)。
        //并且在OnContextMenu中GetSystemMenu(FALSE);根本得不到系统的菜单!
       //
       //这时一个办法是:自己定义菜单资源,然后加载进来,由OnContextMenu中显示,
    }
    else
    {
       //最好,方法是什么?
    }--------------------------------------------------------
    欢迎讨论~
      

  8.   

    VisualEleven,SullenSun:
    哦,是吗,那只能先这样了,