这是应用程序框架生成的代码:在这里进行动态拆分(即可以只显示一个也可以拆分为2个或4个窗口)
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
return m_wndSplitter.Create(this,
2, 2, // TODO: 调整行数和列数
CSize(10, 10), // TODO: 调整最小窗格大小
pContext);
}在调用CSplitterWnd类成员m_wndSplitter的成员函数Create中的第三、四个参数不能大于2,就是说只能拆分2*2的,那么如果要大于2*2的4窗口是怎么做呢?注:这是MSDN的说明:
virtual BOOL Create(
CWnd* pParentWnd,
int nMaxRows,
int nMaxCols,
SIZE sizeMin,
CCreateContext* pContext,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT,
UINT nID = AFX_IDW_PANE_FIRST
);
nMaxRows
The maximum number of rows in the splitter window. This value must not exceed 2.nMaxCols
The maximum number of columns in the splitter window. This value must not exceed 2.
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
return m_wndSplitter.Create(this,
2, 2, // TODO: 调整行数和列数
CSize(10, 10), // TODO: 调整最小窗格大小
pContext);
}在调用CSplitterWnd类成员m_wndSplitter的成员函数Create中的第三、四个参数不能大于2,就是说只能拆分2*2的,那么如果要大于2*2的4窗口是怎么做呢?注:这是MSDN的说明:
virtual BOOL Create(
CWnd* pParentWnd,
int nMaxRows,
int nMaxCols,
SIZE sizeMin,
CCreateContext* pContext,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | SPLS_DYNAMIC_SPLIT,
UINT nID = AFX_IDW_PANE_FIRST
);
nMaxRows
The maximum number of rows in the splitter window. This value must not exceed 2.nMaxCols
The maximum number of columns in the splitter window. This value must not exceed 2.
解决方案 »
- makefile中链接cmt库,怎么指定?
- 请问如何更改控制台程序默认的图标?
- 如何去掉或隐藏掉窗体上的关闭按钮,最大化按钮,最小化按钮?
- 菜鸟求助:怎样在Edit box里面实现换行功能
- 简单问题:在MFC中怎样限制主窗口的大小
- vs2010连接sql server2005问题
- 问一个猜猜的问题--MSSDK是什末东东,在哪里能得到他?
- VC中的MFC树形控件和Oracle数据库的实时显示
- 请教关于IOCP模型中如何设置Socket的Send Buffer?
- 我会vb、c,c++的类继承派生多态也看懂了,我想看vc了,可是我看了一周还摸不到一点头绪,怎么办,是不是还要先学点别的还是就一个劲钻下去???
- error C2440: “static_cast”: 无法从“int (__thiscall CHKVisionDlg::* )(UINT,INT)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,
- 当服务器端的socket收到了一半的数据(还不够组成一个有意义的数据)就断了,然后改把这一半数据丢弃,还是保留着等客户端重连上来之后,
return -1; if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CWWWView), CSize(100, 30), pContext) ||
!m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CWWWView), CSize(0, 100), pContext))
{
m_wndSplitter.DestroyWindow();
return -1;
}用静态拆分吧,类似上边的代码,想怎么拆就怎么拆,不够多了就把拆好的窗口继续拆