【问题标题】:Adding Minimize box to MFC Property Sheet system menu将最小化框添加到 MFC 属性表系统菜单
【发布时间】:2012-01-18 08:28:04
【问题描述】:

如何将最小化和最大化框添加到CMFCPropertySheet的系统菜单中。 我尝试通过

修改样式
CMFCPropertySheet::ModifyStyle(NULL, WS_SYSMENU);

但什么也没发生。

【问题讨论】:

    标签: visual-c++ mfc


    【解决方案1】:

    假设您有一个派生自 CPropertySheet 的类,我们称之为 MySheet:

    // Capture the WM_NCREATE message
    BEGIN_MESSAGE_MAP(CMySheet, CPropertySheet)
      ON_WM_NCCREATE()
    END_MESSAGE_MAP()
    
    BOOL CMySheet::OnNcCreate(LPCREATESTRUCT lpCreateStruct)
    {
      if (!CPropertySheet::OnNcCreate(lpCreateStruct))
        return FALSE;
    
      // Modify the window style
      LONG dwStyle = ::GetWindowLong(m_hWnd, GWL_STYLE);
      ::SetWindowLong(m_hWnd, GWL_STYLE, dwStyle | WS_WS_MINIMIZEBOX | WS_MAXIMIZEBOX);
    
      return TRUE;
    }
    

    请注意,您可以在 OnInitDialog 中执行此操作,但即使会显示最小化/最大化框,它们也不会执行任何操作。

    【讨论】:

      【解决方案2】:

      在“OnInitDialog:”中这样做对我有用。

      LONG dwStyle = ::GetWindowLong(m_hWnd, GWL_STYLE);
        ::SetWindowLong(m_hWnd, GWL_STYLE, dwStyle | WS_WS_MINIMIZEBOX | WS_MAXIMIZEBOX);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-10
        • 1970-01-01
        • 2012-08-06
        • 2016-06-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多