CFormView视图的切换.对话框的控件没有和参数关联
要动态切换到视图时候调用下面代码.如果要切换的视图CmyForm(从CFormView类继承来的)的时候,切换能够成功,但是在CmyForm里面有个控件IDC_EDIT对应的参数为m_edit(定义如下DDX_Control(pDX, IDC_EDIT, m_edit)).我在切换的时候发现m_edit.m_hWnd=NULL;m_edit这个没有被初始化
BOOL CCsyFrameRegister::SwitchView(CRuntimeClass *pViewClass)
{
int row,col;
row =1;
col =0;
CCreateContext context;
BOOL bSetActive;
if ((this->m_wndSplitter.GetPane(row,col)->IsKindOf(pViewClass))==TRUE)
{
return FALSE;
}
//获取文档对象的指针,以便在创建新视图的过程中能够使用它
CView *pActiveView=NULL;
CView *pNewView=NULL;
pActiveView=this->GetActiveView();
if (pActiveView==NULL || pActiveView==m_wndSplitter.GetPane(row,col))
bSetActive=TRUE;
else
bSetActive=FALSE;
((CView *) m_wndSplitter.GetPane(row,col))->DestroyWindow(); //删除存在的视图
//创建新视图
context.m_pNewViewClass=pViewClass;
context.m_pCurrentDoc=NULL;
context.m_pNewDocTemplate=NULL;
context.m_pLastView=NULL;
context.m_pCurrentFrame=NULL;
m_wndSplitter.CreateView(row,col,pViewClass,CSize(0,0),&context);
pNewView = (CView *)m_wndSplitter.GetPane(row,col);
if (bSetActive==TRUE)
this->SetActiveView(pNewView);
m_wndSplitter.RecalcLayout();//重新计算位置
return TRUE;
}
[解决办法]
给分吧lz, 别浪费了.
[解决办法]
给分吧lz, 别浪费了.
--------------------------------
界面与逻辑彻底分离的利器:DirectUI
界面开发网站:www.uipower.com