MFC Windows程序设计:去除最大化按钮

1.重载虚函数PreCreateWindow

BOOL CMainWindow::PreCreateWindow(CREATESTRUCT& cs)
{
    //使最大化失效
    cs.style = cs.style&~WS_MAXIMIZEBOX; 
    if( !CFrameWnd::PreCreateWindow(cs) ) 
        return FALSE; 
 
    return TRUE; 
}

加上 cs.style&= ~WS_THICKFRAME;  可以让窗口大小不能改变,也不能移动。

2.拦截最大化命令

void CMainWindow::OnSysCommand (UINT nID, LPARAM lparam)
{
    //使系统菜单中的最大化失效
    if(((nID & 0xFFF0) != SC_MAXIMIZE) && ((nID & 0xFFF0) != SC_MOVE))
        CFrameWnd::OnSysCommand (nID, lparam);
}

在message map中添加ON_WM_SYSCOMMAND()。

你可能感兴趣的:(MFC Windows程序设计:去除最大化按钮)