天下

记录修行的印记

MFC单文档界面的微调


BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
 if( !CFrameWnd::PreCreateWindow(cs) )
  return FALSE;

 cs.style &= ~FWS_ADDTOTITLE;//屏蔽“无标题”字样
 cs.style &= ~WS_MAXIMIZEBOX;//屏蔽屏幕最大化
 
//cs.style &= ~WS_THICKFRAME;  //不可改变大小
 return TRUE;
}


//调整状态栏大小
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{    if (!m_wndStatusBar.Create(this))
    {
        TRACE0("未能创建状态栏\n");
        return -1;      // 未能创建
    }
    m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));

    m_wndStatusBar.SetPaneInfo(0,m_wndStatusBar.GetDlgCtrlID(),SBPS_NORMAL,230); //调整大小
    
//.
}

//固定MainFrame大小
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
    POINT p = {365,400};
    lpMMI->ptMaxTrackSize = p;
    lpMMI->ptMinTrackSize = p;
    CFrameWnd::OnGetMinMaxInfo(lpMMI);
}

// MainFrm.h  增加
public:
 POINT m_TrackSize;
 void SetAutoSize();

// MainFrm.cpp
void CMainFrame::SetAutoSize()
{
     CRect rc;
     GetWindowRect(&rc);
     m_TrackSize = CPoint(rc.Width(),rc.Height());
}

void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
{
 if (m_TrackSize.x && m_TrackSize.x)
 {
  lpMMI->ptMinTrackSize = m_TrackSize;
  lpMMI->ptMaxTrackSize = m_TrackSize;
 }
 CXTPFrameWnd::OnGetMinMaxInfo(lpMMI);
}

// OppoTest6View.cpp
void COppoTest6View::OnInitialUpdate()
{
 CFormView::OnInitialUpdate();
 GetParentFrame()->RecalcLayout();
 ResizeParentToFit();
 
 CMainFrame* MainFrame = (CMainFrame*)GetParentFrame();
 MainFrame->SetAutoSize();
}

posted on 2016-05-24 17:23 天下 阅读(133) 评论(0)  编辑 收藏 引用 所属分类: Win32


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2020年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿(4)

随笔分类(377)

随笔档案(327)

链接

最新随笔

搜索

最新评论