+ -
当前位置:首页 → 问答吧 → 想做一个学生管理系统,关于窗口切分

想做一个学生管理系统,关于窗口切分

时间:2011-12-14

来源:互联网

想做成这样的切分窗口,左边显示list列表,右边是操作的按钮,不知道怎么做出来


初学的,跟着书上照葫芦画瓢,切分文档

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
// TODO: Add your specialized code here and/or call the base class
CRect rc;
GetClientRect(rc);
CSize paneSize(rc.Width ()/2-16,rc.Height ()/1-16);
m_wndSplitter.CreateStatic (this,1,2);
m_wndSplitter.CreateView (0,0,RUNTIME_CLASS(CDemoView),CSize(450,250),pContext);
m_wndSplitter.CreateView (0,1,RUNTIME_CLASS(CDemoView),paneSize,pContext);

//return CFrameWnd::OnCreateClient(lpcs, pContext);
   
return TRUE;
}

然后分出来这个样子,不知道怎么修改?

作者: a375474942   发布时间: 2011-12-14

m_wndSplitter.CreateView (0,0,RUNTIME_CLASS(CDemoView),CSize(450,250),pContext);
m_wndSplitter.CreateView (0,1,RUNTIME_CLASS(CDemoView),paneSize,pContext);

把第二个视图改成以CFormView为基类的视图,就可以像对话框一样操作它了

作者: mayudong1   发布时间: 2011-12-14

当然,前提是你得先插入两个新的视图
像图片上说的,一个是基于CListView的,一个是基于CFormView的

作者: mayudong1   发布时间: 2011-12-14

引用 2 楼 mayudong1 的回复:

当然,前提是你得先插入两个新的视图
像图片上说的,一个是基于CListView的,一个是基于CFormView的

不是很懂,不知道怎么建,能不能说清楚一点,怎么建?

作者: a375474942   发布时间: 2011-12-14

一个是基于CListView的,一个是基于CFormView的可以,也可以两个都用CFormView,在左边的视图中加入ListControl

作者: yayafu   发布时间: 2011-12-14

VC6->Insert菜单->New Class,填好类名,选好基类点OK

作者: yayafu   发布时间: 2011-12-14

引用 3 楼 a375474942 的回复:
引用 2 楼 mayudong1 的回复:

当然,前提是你得先插入两个新的视图
像图片上说的,一个是基于CListView的,一个是基于CFormView的

不是很懂,不知道怎么建,能不能说清楚一点,怎么建?


添加新类,基类选择CFormView或者CListView或者其他你需要的基类

作者: mayudong1   发布时间: 2011-12-14

引用 5 楼 yayafu 的回复:

VC6->Insert菜单->New Class,填好类名,选好基类点OK

用CFormView后,新建类,好像要绑定一个对话框,但是我绑定了之后,编译就 提示 终止,重试,忽略那样的对话框了

作者: a375474942   发布时间: 2011-12-14

IMPLEMENT_DYNCREATE(CCaozuoView, CFormView)

CCaozuoView::CCaozuoView()
: CFormView(CCaozuoView::IDD)
{
//{{AFX_DATA_INIT(CCaozuoView)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}


然后分割的时候
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
// TODO: Add your specialized code here and/or call the base class
CRect rc;
GetClientRect(rc);
CSize paneSize(rc.Width ()/2-16,rc.Height ()/1-16);
m_wndSplitter.CreateStatic (this,1,2);
m_wndSplitter.CreateView (0,0,RUNTIME_CLASS(CDemoView),CSize(450,250),pContext);
m_wndSplitter.CreateView (0,1,RUNTIME_CLASS(CCaozuoView),CSize(15,25),pContext);

//return CFrameWnd::OnCreateClient(lpcs, pContext);
   
return TRUE;
}

这样就编译的时候就 终止,重试,忽略 的提示了

作者: a375474942   发布时间: 2011-12-14

作者: a375474942   发布时间: 2011-12-14