我想在单文档切分视图,代码如下:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
m_splitterWnd.CreateStatic(this,1,2);//一行两列m_splitterWnd.CreateView(0,0,RUNTIME_CLASS(CCapFormView),CSize(835,500),pContext);
m_splitterWnd.CreateView(0,1,pContext->m_pNewViewClass,CSize (0,0),pContext);//kjview
m_splitterWndH.CreateStatic(&m_splitterWnd,2,1,WS_CHILD | WS_VISIBLE,m_splitterWnd.IdFromRowCol(0,0));
BOOL nRet = m_splitterWndH.CreateView(1,0,RUNTIME_CLASS(CShowView),CSize(0,0),pContext);
}
想显示如下图样:
| capview| |
| | |
|---------- kjview|
| showview | |
| | |
开始showview就是不出来?
请大家帮忙
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
m_splitterWnd.CreateStatic(this,1,2);//一行两列m_splitterWnd.CreateView(0,0,RUNTIME_CLASS(CCapFormView),CSize(835,500),pContext);
m_splitterWnd.CreateView(0,1,pContext->m_pNewViewClass,CSize (0,0),pContext);//kjview
m_splitterWndH.CreateStatic(&m_splitterWnd,2,1,WS_CHILD | WS_VISIBLE,m_splitterWnd.IdFromRowCol(0,0));
BOOL nRet = m_splitterWndH.CreateView(1,0,RUNTIME_CLASS(CShowView),CSize(0,0),pContext);
}
想显示如下图样:
| capview| |
| | |
|---------- kjview|
| showview | |
| | |
开始showview就是不出来?
请大家帮忙
解决方案 »
- 关于TLS局部线程存储的 一个简单问题希望前辈指导
- 画三点圆弧用什么方法好?求救了!!
- 一个在ListCtrl中查找的问题,急
- 用VC做数据库编程,采用哪种访问技术比较好?(ODBC\DAO...)
- mp3转成exe,谁知道怎么转?
- 怎样挂接Windows2000中Explorer.exe中的CreateProcess?
- (x1,y1),(x2,y2).......(xn,yn),对这些n组数据进行拟合的算法
- 无模式对话框,我如何判断同样的窗口只显示一次,如果已经打开某个窗口,如何显示到最上层?
- c++ vc socket 长连接问题,cmpp网关的,同时收发丢包问题?
- MSDN的工具里有一个spy++,可以监视其他程序的消息,只需用鼠标选中其窗口就行了,在程序中如何实现?具体的细节在msdn中的什么地方?
- 分太多了,散分。
- 请问在WIN98下面怎样远程调试VC2003的项目。
m_splitterWnd.CreateStatic(this,2,2);//
应该是两行两列吧?
替换
return CFrameWnd::OnCreateClient(lpcs, pContext);
{
m_splitterWnd.CreateStatic(this,1,2);//一行两列
m_splitterWnd.CreateView(0,1,RUNTIME_CLASS(kjview),CSize(835,500),pContext);
m_splitterWndH.CreateStatic(&m_splitterWnd,2,1,WS_CHILD | WS_VISIBLE,m_splitterWnd.IdFromRowCol(0,0));
m_splitterWndH.CreateView(0,0,RUNTIME_CLASS(capview),CSize (0,0),pContext);//kjview BOOL nRet = m_splitterWndH.CreateView(1,0,RUNTIME_CLASS(CShowView),CSize(0,0),pContext);
}
加
return TRUE;
最后还得加return true;
GetWindowRect(&rect);
CSize panSize1(rect.Width()/4,rect.Height());
CSize panSize2(3*rect.Width()/4,rect.Height()/2);
m_splitterWnd.CreateStatic(this,1,2);
m_splitterWndH.CreateStatic(&m_splitterWnd,2,1,WS_CHILD | WS_VISIBLE|WS_BORDER,
m_splitterWnd.IdFromRowCol(0, 0));
if (!m_splitterWndH.CreateView(0,0,RUNTIME_CLASS(CView2),panSize2,NULL))
{
TRACE0("Failed to create first pane\n");
return FALSE;
}
if (!m_splitterWndH.CreateView(1,0,RUNTIME_CLASS(CView2),panSize2,NULL))
{
TRACE0("Failed to create second pane\n");
return FALSE;
}
if (!m_splitterWnd.CreateView(0,1,RUNTIME_CLASS(CCutWindowView),panSize1,pContext))
{
TRACE0("Failed to create first pane\n");
return FALSE;
}
return true;
返回语句是return true;
m_splitterWnd.CreateView(0,1,pContext->m_pNewViewClass,CSize (175,300),pContext);
m_splitterWnd.SetColumnInfo(0,835,835);
m_splitterWndH.CreateStatic(&m_splitterWnd,2,1,WS_CHILD | WS_VISIBLE| WS_BORDER,m_splitterWnd.IdFromRowCol(0,0));
m_splitterWndH.CreateView(0,0,RUNTIME_CLASS(CCapFormView),CSize(835,500),pContext);
m_splitterWndH.CreateView(1,0,RUNTIME_CLASS(CShowView),CSize(835,100),pContext);
return true;
主要是capview createview时语句位置和splitter不对
if (!m_splitterWndH.CreateView(0,0,RUNTIME_CLASS(CView2),panSize2,NULL))//此处不能为NULL
此处为空是可以的,要看你View是基于什么类的了