关于窗口上如何创建分割条(splitter)?

misssky2003 2003-08-22 02:02:51
在一个基于单文档的工程中,我在view中创建了3个窗口,分别显示不同的内容!3个窗口都占据了整个客户区的大小!
其中:
第一个窗口包含有一个Grid和一个ListCtrl,我在第一个窗口的OnCreate中:
创建分割条如下:
BOOL a1= m_wndSplitter.CreateStatic(this, 2, 1); //分割
BOOL a2= m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CGridCtrl), CSize(200,200), NULL); //Grid
BOOL a3= m_wndSplitter.CreateView(1,0,RUNTIME_CLASS(CListView), CSize(50,50), NULL); //ListCtrl
//....其后是在第一个窗口上动态创建Grid和ListCtrl

此外,我在第一个窗口用如下2个成员变量标志需要Grid和ListCtrl;
CGridCtrl m_Grid;
CListCtrl m_listCtrl;

请问我1。在我的第一个窗口(CWnd类)中创建分割条怎么老是不大成功?是不是CWnd中不能像
在CMainFrame的OnCreateClient中创建分割条那样创建?
2。我动态创建的Grid和ListCtrl怎么和分割条捆绑在一起?




...全文
177 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
robinford 2003-10-23
  • 打赏
  • 举报
回复
晕,你用一个视图包含3个DIALOG,然后根据需要显示不同的DIALOG不就可以了?
smallcrocodile 2003-10-23
  • 打赏
  • 举报
回复
学习
misssky2003 2003-09-04
  • 打赏
  • 举报
回复
up
misssky2003 2003-09-03
  • 打赏
  • 举报
回复
自己up一下!
misssky2003 2003-08-29
  • 打赏
  • 举报
回复
有人告诉我么?
seagis 2003-08-28
  • 打赏
  • 举报
回复
up
misssky2003 2003-08-28
  • 打赏
  • 举报
回复
可是不是CFormView,就是普通的view,我是要在CWnd中分割
misssky2003 2003-08-23
  • 打赏
  • 举报
回复
再没有人回答我么?
lazycat818 2003-08-23
  • 打赏
  • 举报
回复
如果是CFormView,我倒建议阁下自己创建一个“滚动条”,可以从CStatic派生,其实只要重写MouseDown, MouseMove, MouseUp,用起来比CSplitterWnd舒服多了。就象VB。
思危 2003-08-23
  • 打赏
  • 举报
回复
我还是不明白
misssky2003 2003-08-22
  • 打赏
  • 举报
回复
谢谢 SoLike(是我) 的回答,因为我所在view中创建3个窗口,也就是说,
3个窗口的父窗口是视;
只有在第一个窗口中需要再次分割成2部分,我的问题就是说:对我一个窗口进行分割,
风不是分割框架,因为分割框架,那我创建的3个窗口都分割成2部分了,我只要将第一个
窗口分割成上下2部分!请问如何风格CWnd?我要问的就是这个!
思危 2003-08-22
  • 打赏
  • 举报
回复
为什么是拆分视?而不是框架
思危 2003-08-22
  • 打赏
  • 举报
回复
在CMainFrame中用Splitter窗口,进行两次拆分:

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CRect rc;
GetClientRect(&rc);
CSize szUpDown(rc.Width(), rc.Height()/2);

BOOL bCreateSpltr = m_wndSplitUpDown.CreateStatic( this, 2, 1); //拆分为上下两个窗口

if(m_wndSplitLeftRight.CreateStatic(&m_wndSplitUpDown,1,2,WS_CHILD|WS_VISIBLE,
m_wndSplitUpDown.IdFromRowCol(0, 0))==NULL) //将上面的窗口拆分为左右两部分
return FALSE;
m_wndSplitLeftRight.CreateView(0,0,RUNTIME_CLASS(CGridView), CSize(rc.Width()/2+100, 100),
pContext);//左上窗口创建
m_wndSplitLeftRight.CreateView(0,1,RUNTIME_CLASS(CListView), CSize(rc.Width()/2, 100),
pContext); //右上窗口创建
m_wndSplitUpDown.SetRowInfo(0, rc.Height()/2+100, 0);
m_wndSplitUpDown.CreateView(1,0,RUNTIME_CLASS(CNomalView), CSize(100,100),
pContext); //创建下面窗口

m_wndSplitUpDown.RecalcLayout();
m_wndSplitLeftRight.RecalcLayout();

return bCreateSpltr;
}

15,979

社区成员

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

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