菜鸟求助:如何用 MFC 编写切分窗口?

icessl 2003-03-28 05:35:11
用 MFC 如何编写其有 3 个切分窗口的程序? 这 3 个窗口的位置是:上方1个,下方2个,
这 2 个并列排开.有点象"品" 字的形状.

...全文
73 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
icessl 2003-03-28
  • 打赏
  • 举报
回复
谢谢.立即结帐
zhdleo 2003-03-28
  • 打赏
  • 举报
回复
知道怎么做吧?-------在哪里写。

我说重点的地方:
1、通过向导另外生成3个CView类:CView1,CView2,CView3。

准备对应你的那三个窗口。

2、在CMainFrame的头文件中加如下代码:
CSplitterWnd m_wndsSplitter1;
CSplitterWnd m_wndsSplitter2;

3、添加CMainFrame的OnCreateClient()消息函数,分割窗口:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class

CRect rc;
GetClientRect(&rc);

CSize PaneSize1(rc.Width()/2,rc.Height()/2);
CSize PaneSize2(rc.Width(),rc.Height()/2);

if(m_wndSplitter1.CreateStatic(this,2,1)==NULL)
return FALSE;
m_wndSplitter1.SetRowInfo(0,rc.Height()/2,10);
m_wndSplitter1.SetRowInfo(1,rc.Height()/2,10);
if(m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,WS_CHILD|WS_VISIBLE, m_wndSplitter1.IdFromRowCol(1,0))==NULL)
return FALSE;

m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CView2),PaneSize1,pContext);
m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CView3),PaneSize1,pContext);
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CView1),PaneSize2,pContext);


//m_wndSplitter2.SetColumnInfo(0, rc.Width()/2, 10);

m_wndSplitter1.RecalcLayout();
m_wndSplitter2.RecalcLayout();

return TRUE;

}

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧