通过VC2010向导创建一个标准的MFC单文档框架,去掉文档/视图结构支持。然后,在资源中插入一个FormView窗口,在MainFrame的Create中创建并显示此视图窗口。
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1; pView = (CMainView *)(RUNTIME_CLASS(CMainView)->CreateObject()); if(!pView) { MessageBox(_T("创建视图不成功!")); return 0; } CRect crt; CCreateContext Cnt; GetClientRect(crt); Cnt.m_pCurrentDoc = NULL;//GetDocument(); //创建新添加的视图,资源ID为:IDD_FORMVIEW pView->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, crt, this, IDD_FORMVIEW, &Cnt); pView->ShowWindow(SW_SHOWNORMAL); pView->MoveWindow(&crt); //---------------------------------------------------------------------- if (!m_wndStatusBar.Create(this)) { TRACE0("未能创建状态栏\n"); return -1; // 未能创建 } m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT)); return 0;}
去掉视图窗口下凹风格,如下图:
BOOL CMainView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: 在此添加专用代码和/或调用基类 cs.style &= ~WS_BORDER; /* 去除视图凹陷效果 */ return CFormView::PreCreateWindow(cs); }
注意,修改MainFrame中的OnCmdMsg,OnSetFocus函数中的视图变量