如何在CMFCPropertySheet
的系统菜单中添加最小化和最大化框。
我试过通过
CMFCPropertySheet::ModifyStyle(NULL, WS_SYSMENU);
但没有发生任何事情。
答案 0 :(得分:6)
假设您有一个从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中执行此操作,但即使显示最小化/最大化框,它们也不会执行任何操作。
答案 1 :(得分:0)
在“ OnInitDialog:”中执行此操作对我有用。
LONG dwStyle = ::GetWindowLong(m_hWnd, GWL_STYLE);
::SetWindowLong(m_hWnd, GWL_STYLE, dwStyle | WS_WS_MINIMIZEBOX | WS_MAXIMIZEBOX);