我如下做,但切换不了,只有一个视图,你看问题在哪里,还缺什么?
1 XXX.h : header file
enum {formview1,formview2,formview3};
2、 声明 int m_selectView;在构造函数初始化 m_selectView=formview1;
那么就为void SwitchView(int m_selectView);
3、void XXX::ShowAllCtrls()
{
switch(m_selectView)
{
case formview1:{一大堆代码}
case formview2:{一大堆代码}
case formview3:{一大堆代码}
}
4、
void CChildFrame::OnAdver()
{
Adverse* pView = (Adverse*)(m_wndSplitter.GetPane(0,0));
pView->SwitchView(formview2);
}
///////////////////////
在XXX.h int m_selectView
void XXX::SwitchView(int m_selectView)
1 XXX.h : header file
enum {formview1,formview2,formview3};
2、 声明 int m_selectView;在构造函数初始化 m_selectView=formview1;
那么就为void SwitchView(int m_selectView);
3、void XXX::ShowAllCtrls()
{
switch(m_selectView)
{
case formview1:{一大堆代码}
case formview2:{一大堆代码}
case formview3:{一大堆代码}
}
4、
void CChildFrame::OnAdver()
{
Adverse* pView = (Adverse*)(m_wndSplitter.GetPane(0,0));
pView->SwitchView(formview2);
}
///////////////////////
在XXX.h int m_selectView
void XXX::SwitchView(int m_selectView)
解决方案 »
- 高分求解ocx数字签名
- SetTimer()之后没有收到定时器消息
- unicode字符转换问题
- 关于创建多级目录的问题
- char str[]=100 char *p=str,,为什么sizeof(p)=4?????
- 如何输出一个不可点击式的字符串?就是当按钮EnableWindow(false)时Windows显示的字符串
- 我做了一个播放器,如何双击文件后让影片以我的播器打开?
- CFile类write函数如何写数据文件?
- 如何将消息发给动态创建的窗口,如何接受和响应动态创建的窗口发出的消息?
- Fpspread 列印与预览
- wchar_t与char怎么相互转换(在线等待)
- .chm编译出错是什么问题?
代码我简单的贴一下,其中 pNewViewClass = RUNTIME_CLASS(CStringListView)中的每一个View都是一个FormView :
void CMainFrame::OnExample(UINT nCmdID){if (nCmdID == m_nCurrentExample) return; // already selectedCView* pOldActiveView = GetActiveView();
::SetWindowLong(pOldActiveView->m_hWnd, GWL_ID, m_nCurrentExample);CRuntimeClass* pNewViewClass;
switch (nCmdID) {
case ID_STRINGLIST:
pNewViewClass = RUNTIME_CLASS(CStringListView);
break;
case ID_TYPEDLIST:
pNewViewClass = RUNTIME_CLASS(CTypedPtrListView);
break;
case ID_INTLIST:
pNewViewClass = RUNTIME_CLASS(CIntListView);
break;
case ID_DWORDARRAY:
pNewViewClass = RUNTIME_CLASS(CDWordArrayView);
break;
case ID_TYPEDPTRARRAY:
pNewViewClass = RUNTIME_CLASS(CTypedPtrArrayView);
break;
case ID_POINTARRAY:
pNewViewClass = RUNTIME_CLASS(CPointArrayView);
break;
case ID_MAPSTRINGTOSTRING:
pNewViewClass = RUNTIME_CLASS(CMapStringToStringView);
break;
case ID_TYPEDPTRMAP:
pNewViewClass = RUNTIME_CLASS(CTypedPtrMapView);
break;
case ID_MAPDWORDTOMYSTRUCT:
pNewViewClass = RUNTIME_CLASS(CMapDWordToMyStructView);
break;
default:
ASSERT(0);
return;
}// create the new view
CCreateContext context;
context.m_pNewViewClass = pNewViewClass;
context.m_pCurrentDoc = GetActiveDocument();
CView* pNewView = STATIC_DOWNCAST(CView, CreateView(&context));
if (pNewView != NULL){
// the new view is there, but invisible and not active...
pNewView->ShowWindow(SW_SHOW);
pNewView->OnInitialUpdate();
SetActiveView(pNewView);
RecalcLayout();
m_nCurrentExample = nCmdID;
// finally destroy the old view...
pOldActiveView->DestroyWindow();
}}