我想切成左右两个窗口,有两个CFormView能显示在右边的窗口中,先显示一个,当点击切换时,这个view就被另一个view覆盖掉了。但就是这个view变到另一个view总是不行。请高手指点,谢谢!我用的destroywindow后再create另一个view不行,用CSplitter的Deleteview后再createview也不行,不知该如何才可以。
解决方案 »
- !!!!!!!请诸位帮忙看一下,这关于COM OLE的内存泄露到底在什么地方
- 大家看看visual studio 2010的MSDN里面这个是什么意思怎么用?
- 列表框CListCtrl修改行高
- editbox设置为password后,在xp64下输入的字符显示是竖条而不是星号
- 高分请教C中调用C++函数的问题
- 主窗口和子窗口显示的问题
- 为什么我显示的多文档childFrm是一片空白,点了几下才出现里面的控件?
- 怎么禁止通过标题兰移动窗口?
- VC6下画图的问题:我所显示的图形在按键后改变。当我一直按着,使其快速不停地变化一段时间后,显示消失。大家是否遇到过这样的问题。
- CString和DWORD_PTR类型转换问题
- 如何使CStatic 对象不可见,马上给分
- 请教:ADO服务器端动态游标问题
单文档:
在App里有:
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMarkDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CMarkView));
然后在MainFrm的OnCreateClient有:
BOOL result=m_wndSplitter.CreateStatic(this,1,2);
result|=m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(Coutlook),CSize(100,100),pContext);
result|=m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CMarkView),CSize(924,100),pContext);
我也新建了一个CFrameWnd,请问在哪儿将其与右面的Pane联系在一起?请老兄务必帮小弟一把,不胜感激!
{
CView *pView = GetRightPane();
if (pView == NULL)
return; CRuntimeClass *pViewClass = NULL;
if (pView->IsKindOf(RUNTIME_CLASS(CViewSwitchView)))
{
pViewClass = RUNTIME_CLASS(CRightFormView);
}
else if (pView->IsKindOf(RUNTIME_CLASS(CRightFormView)))
{
pViewClass = RUNTIME_CLASS(CViewSwitchView);
}
CRect rc;
pView->GetWindowRect(&rc);
m_wndSplitter.DeleteView(0, 1);
CCreateContext context;
context.m_pCurrentDoc = GetActiveDocument();
context.m_pCurrentFrame = this;
context.m_pLastView = NULL;
context.m_pNewDocTemplate = NULL;
context.m_pNewViewClass = pViewClass;
if (!m_wndSplitter.CreateView(0,1, pViewClass, rc.Size(), &context))
ASSERT(FALSE); m_wndSplitter.RecalcLayout();
}
上面的情况是直接撤消原来的视图,只要把数据存到文档就可以了,切换其实就是重新运行RUNTIMECLASS