问题描述
- MFC窗口分割问题,望大神予以小弟指导,感激涕零
-
参照MFC分割窗的事例进行了窗口分割的工作,但是遇到了只能对第二个窗口进行分割的问题,分割结果如图1,,但现在想实现第一行为一整行,第二行分为两列。本人初步接触MFC,希望知情人予以解答,在此感激不尽。
分割代码如下:if (m_splitter.CreateStatic(this, 2, 1) == NULL) return FALSE; m_splitter.CreateView(0, 0, RUNTIME_CLASS(CSplitterWndView), CSize(960, 200), pContext); //m_splitter.CreateView(1, 0, RUNTIME_CLASS(FormView1), CSize(0, 0), pContext); if (m_splitter1.CreateStatic(&m_splitter, 1, 2, WS_CHILD | WS_VISIBLE, m_splitter.IdFromRowCol(1, 0)) == NULL) return FALSE; ///将第0行0列再分开1行2列 //将FormView1类连接到第二个分栏对象的0行0列 m_splitter1.CreateView(0, 0, RUNTIME_CLASS(FormView1), CSize(960, 0), pContext); m_splitter1.CreateView(0, 1, RUNTIME_CLASS(FormView2), CSize(0, 0), pContext); return TRUE;
解决方案
// 将当前窗口分成2行1列
if (m_splitter.CreateStatic(this, 2, 1) == NULL)
return FALSE;
// 在第一行第一列(索引是0,0)中嵌入CSplitterWndView窗口,大小为960, 200
m_splitter.CreateView(0, 0, RUNTIME_CLASS(CSplitterWndView), CSize(960, 200), pContext);
//m_splitter.CreateView(1, 0, RUNTIME_CLASS(FormView1), CSize(0, 0), pContext);
// 将第二行第一列(索引是1,0)分割成一行2列
if (m_splitter1.CreateStatic(&m_splitter, 1, 2, WS_CHILD | WS_VISIBLE, m_splitter.IdFromRowCol(1, 0)) == NULL)
return FALSE; ///将第0行0列再分开1行2列
//将FormView1类连接到第二个分栏对象的0行0列
// 将FormView1类连接到第二个分栏对象的1行1列(索引是0,0) -- 也就是整体窗口的第2行第1列,大小是960,0。
m_splitter1.CreateView(0, 0, RUNTIME_CLASS(FormView1), CSize(960, 0), pContext);
// 将FormView1类连接到第二个分栏对象的1行2列(索引是0,0) -- 也就是整体窗口的第2行第2列,大小是0,0。
m_splitter1.CreateView(0, 1, RUNTIME_CLASS(FormView2), CSize(0, 0), pContext);
return TRUE;
每看明白你描述的意思。给你加一下详细的注释说明,看看有没有帮助
解决方案二:
遇到了只能对第二个窗口进行分割的问题?第二个窗口和第一个窗口分别是哪个?
现在想实现第一行为一整行,第二行分为两列。。。。。这个不就是你截图的效果吗?并且截图跟你的代码是匹配的--都是这个效果