m_wndSplitter1 纵向切割
m_wndSplitter1 横向切割//MainFrm.cppBOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CRect rect;
GetClientRect(&rect); //产生第一次静态分割
m_wndSplitter1.CreateStatic(this,1,2); //行数与列数
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CGuoView),CSize(rect.Width(),rect.Height()-rect.Height()/5),pContext);
m_wndSplitter1.CreateView(0,1,RUNTIME_CLASS(CBottomEditView),CSize(rect.Width(),rect.Height()/5),pContext);
//不在调用基类的OncreateClient函数
return true;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}// GuoView.cpp
int CGuoView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CRect rect;
GetClientRect(&rect); // 获得窗口的创建信息指针
CCreateContext *pContext=(CCreateContext *)lpCreateStruct->lpCreateParams;
m_wndSplitter2.CreateStatic(this,2,1); //产生第二次的静态分割
//为第一个窗格产生视图
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CLeftFormView),CSize(rect.Width(),rect.Height()-rect.Height()/5),pContext);
//为第二个窗格产生视图
m_wndSplitter2.CreateView(1,0,RUNTIME_CLASS(CTopListView),CSize(0,0),pContext);
return 0;
}void CGuoView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
CRect rect;
GetClientRect(&rect);
int x=rect.Width();
int y=rect.Height();
m_wndSplitter2.MoveWindow(-2,-2,x,y+3);
m_wndSplitter2.SetRowInfo(0,0,y-y/5); //左边窗格位置
m_wndSplitter2.SetRowInfo(1,0,y/5); //右边窗格位置
m_wndSplitter2.RecalcLayout();
}
问题是:第一次分割成功了,可是第二次分割却没有显示,找不到原因,请帮帮忙,坐等答案
m_wndSplitter1 横向切割//MainFrm.cppBOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CRect rect;
GetClientRect(&rect); //产生第一次静态分割
m_wndSplitter1.CreateStatic(this,1,2); //行数与列数
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CGuoView),CSize(rect.Width(),rect.Height()-rect.Height()/5),pContext);
m_wndSplitter1.CreateView(0,1,RUNTIME_CLASS(CBottomEditView),CSize(rect.Width(),rect.Height()/5),pContext);
//不在调用基类的OncreateClient函数
return true;
//return CFrameWnd::OnCreateClient(lpcs, pContext);
}// GuoView.cpp
int CGuoView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CRect rect;
GetClientRect(&rect); // 获得窗口的创建信息指针
CCreateContext *pContext=(CCreateContext *)lpCreateStruct->lpCreateParams;
m_wndSplitter2.CreateStatic(this,2,1); //产生第二次的静态分割
//为第一个窗格产生视图
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CLeftFormView),CSize(rect.Width(),rect.Height()-rect.Height()/5),pContext);
//为第二个窗格产生视图
m_wndSplitter2.CreateView(1,0,RUNTIME_CLASS(CTopListView),CSize(0,0),pContext);
return 0;
}void CGuoView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
CRect rect;
GetClientRect(&rect);
int x=rect.Width();
int y=rect.Height();
m_wndSplitter2.MoveWindow(-2,-2,x,y+3);
m_wndSplitter2.SetRowInfo(0,0,y-y/5); //左边窗格位置
m_wndSplitter2.SetRowInfo(1,0,y/5); //右边窗格位置
m_wndSplitter2.RecalcLayout();
}
问题是:第一次分割成功了,可是第二次分割却没有显示,找不到原因,请帮帮忙,坐等答案
解决方案 »
- clistctrl 如何实现将CListBox 的 SetCursel() 可以蓝色选中
- 我从codeproject下载了一个实例代码关于驱动开发的但是出现了一点问题可能是符号连接出现问题散分中...............
- 用SDK编写的可执行程序怎么修改文件的图标?
- 一个模式对话框,在OnInitDialog和OnPaint之间运行的什么函数?
- VB写的ActiveDll中定义的结构,如何传递给VC?
- 用CPropertySheet创建了一个有几个Tab的对话框,怎样去掉该对话框的“确定”,“取消”,“应用”,“帮助”按钮,而加入自己的按钮?
- SDK初学者问题!(在线等候)
- 请问谁知道那里有有关文件格式定义文档下载的地方?
- 想做一个即时通讯工具,用什么语言比较好
- 世界坐标到设备坐标的转换
- MFC窗口分割
- 怎么在内存里缩放位图
随便找个资料看看吧
http://www.yesky.com/87/1824087.shtml
m_wndSplitter2.SetRowInfo(0,0,y-y/5); //上边窗格位置
m_wndSplitter2.SetRowInfo(1,0,y/5); //下边窗格位置
http://blog.csdn.net/VisualEleven/archive/2011/06/02/6460564.aspx