有很多的办法改变窗口运行的大小:
举一个例子:
intCMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) ==-1)
return -1;
if (!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY| CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to createtoolbar\n");
return -1; // fail to create
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create statusbar\n");
return -1; // fail to create
}
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
::ShowWindow(this->m_hWnd,SW_SHOWMAXIMIZED);//代码在这里
return 0;
}
对于MDI的窗口只要分别在主窗口的OnCreate函数和子窗口的PreCreateWindow函数中添加代码就可以
或者在App类的InitInstance函数中改变显示主框架
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
m_pMainWnd->UpdateWindow();
上面的方法都只是最大化窗口而已,如果想要自定义窗口大小的话,还可以用下面的方法
重载BOOL PreCreateWindow(CREATESTRUCT& cs) 函数
BOOLCMainFrame::PreCreateWindow(CREATESTRUCT&cs)
{
if( !CFrameWnd::PreCreateWindow(cs))
return FALSE;
// TODO: Modify the Window class or styles here bymodifying
// the CREATESTRUCTcs
cs.dwExStyle&= ~WS_EX_CLIENTEDGE;
cs.lpszClass = AfxRegisterWndClass(0);
cs.style |=WS_CLIPCHILDREN|WS_CLIPSIBLINGS;
cs.cx = 1000;//窗口宽度
cs.cy = 800;//窗口高度
return TRUE;
}