分割窗口问题

yzt001 2003-10-15 10:00:09
我想做如下的窗口分割:

|--------------------|
| | |
| w1 | w2 |
| | |
|--------------------|
| | | |
| w3 | w4 | w5 |
|------|-------|-----|

但是每次运行以后都是如下样式:

|--------------------|
|--------------------|
| | | |
| w3 | w4 | w5 |
|------|-------|-----|

也就是看不到窗口1和窗口2,我需要手动拉开才能看到窗口1和窗口2,这是为什么?我的代码如下:

if(!m_wndSplitter.CreateStatic(this,2,1))
{
TRACE0("Failed to CreateStaticSplitter\n");
return FALSE;
}

if(!m_wndSplitter1.CreateStatic(
&m_wndSplitter,
1,2,
WS_CHILD|WS_VISIBLE|WS_BORDER,m_wndSplitter.IdFromRowCol(0,0)))
{
TRACE0("Failed to create nested splitter\n");
return FALSE;
}

if(!m_wndSplitter2.CreateStatic(
&m_wndSplitter,
1,3,
WS_CHILD|WS_VISIBLE|WS_BORDER,m_wndSplitter.IdFromRowCol(1,0)))
{
TRACE0("Failed to create nested splitter\n");
return FALSE;
}


if(!m_wndSplitter1.CreateView(0,0,
RUNTIME_CLASS(CMyView1),CSize(500,200),pContext))
{
TRACE0("Failed to create CMyView1 pane\n");
return FALSE;
}

if(!m_wndSplitter1.CreateView(0,1,
RUNTIME_CLASS(CMyView2),CSize(500,0),pContext))
{
TRACE0("Failed to create CMyView2pane\n");
return FALSE;
}

if(!m_wndSplitter2.CreateView(0,0,
RUNTIME_CLASS(CMyView3),CSize(350,300),pContext))
{
TRACE0("Failed to create CMyView3pane\n");
return FALSE;
}

if(!m_wndSplitter2.CreateView(0,1,
RUNTIME_CLASS(CMyView4),CSize(350,300),pContext))
{
TRACE0("Failed to create CMyView4 pane\n");
return FALSE;
}

if(!m_wndSplitter2.CreateView(0,2,
RUNTIME_CLASS(CMyView5),CSize(0,0),pContext))
{
TRACE0("Failed to create CMyView5 pane\n");
return FALSE;
}

return TRUE;
...全文
25 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
打雷啦的专栏 2003-10-30
  • 打赏
  • 举报
回复
m_splitter.CreateStatic(this,1,2); //一行两列

m_splitter.CreateView(0,0,RUNTIME_CLASS(CHuabanView),CSize(600,0),pContext);

这个CSize(600,0)设定 -------------
| | |
| | |
|--------|--|
AkiraChing 2003-10-30
  • 打赏
  • 举报
回复
最后加一句
m_wndSplitter.SetRowInfo(0,200,0);就可以了吧
del_c_sharp 2003-10-30
  • 打赏
  • 举报
回复
看书吧,不好说清楚,但代码没几行
carbon107 2003-10-30
  • 打赏
  • 举报
回复
你应加入多个像m_wndSplitter1这样的对象, 然后用
m_wndSplitter1.SetRowInfo
zjjzcgao 2003-10-30
  • 打赏
  • 举报
回复
在.def文件中要加上:
#include <afxcview.h>
wssen 2003-10-17
  • 打赏
  • 举报
回复
m_wndSplitter.RecalcLayout();
m_wndSplitter1.RecalcLayout();
m_wndSplitter2.RecalcLayout();
seagis 2003-10-15
  • 打赏
  • 举报
回复
你手头有没有《MFC深入浅出》,这本书讲的很清楚的!
yzt001 2003-10-15
  • 打赏
  • 举报
回复
flyelf(空谷清音) :我用了你的方法,不行;

hoffen(欢喜于和做语音或视频应用的朋友交流哦~):我检查了一下,没有找到疑点,我的分割代码在上面,你帮忙看一下。
hoffen 2003-10-15
  • 打赏
  • 举报
回复
你一定是分割的数不对,也就是行或列的位置不对,检查一下,我以前做过,没什么问题的。
flyelf 2003-10-15
  • 打赏
  • 举报
回复
m_wndSplitter1.SetRowInfo(0, 100, 100);
m_wndSplitter1.SetRowInfo(1, 200, 200);

15,978

社区成员

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

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