需要处理“WM_SYSCOMMAND”消息
LRESULT OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// 有时会在收到WM_NCDESTROY后收到wParam为SC_CLOSE的WM_SYSCOMMAND
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) {
//还原按钮显示
if (m_maxico && m_reductionico)
{
m_maxico->SetVisible(false);
m_reductionico->SetVisible(true);
}
}
else {
//最大化按钮显示
if (m_maxico && m_reductionico)
{
m_maxico->SetVisible(true);
m_reductionico->SetVisible(false);
}
}
}
return lRes;
}