virtual LRESULT OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { if( wParam == SC_CLOSE ) { ::PostQuitMessage(0L); bHandled = TRUE; return 0; } BOOL bZoomed = ::IsZoomed(*this); LRESULT lRes = CWindowWnd::HandleMessage(uMsg, wParam, lParam); if( ::IsZoomed(*this) != bZoomed ) { if( !bZoomed ) { CControlUI* pControl = static_cast<CControlUI*>(m_PaintManager.FindControl(_T("maxbtn"))); if( pControl ) pControl->SetVisible(false); pControl = static_cast<CControlUI*>(m_PaintManager.FindControl(_T("restorebtn"))); if( pControl ) pControl->SetVisible(true); } else { CControlUI* pControl = static_cast<CControlUI*>(m_PaintManager.FindControl(_T("maxbtn"))); if( pControl ) pControl->SetVisible(true); pControl = static_cast<CControlUI*>(m_PaintManager.FindControl(_T("restorebtn"))); if( pControl ) pControl->SetVisible(false); } } return lRes; }