记一个问题

问题:

我建立了一个MDI工程,View类集成自CRichEDitView 
现在想单击一个按钮后新建一个文档,然后向里面输入内容 
我在Doc类用发ID_FILE_NEW的方式建立了窗口 
然后用 
CRichEditView *pView = GetView(); 
CRichEditCtrl &edit = pView->GetRichEditCtrl();
edit.GetWindowText(strText); 
但是输入的文字总是显示在原来的窗口 
我试了很多办法,总不能显示在新的窗口 

 

非常感谢huayehanshan

提供一段代码

 

  
  
  
  
CRichEditView * pView = MDIGetActive() -> GetActiveView(); if (pView -> IsKindOf(RUNTIME_CLASS(CRichEditView ))) { CRichEditCtrl & edit = pView -> GetRichEditCtrl(); edit.GetWindowText(strText); }

 

但是这段代码我调试不过,但是提示无法从CView*转化成CRichEditView* 
不过提示我去找了一下Cricheditview类的getView函数的实现 

POSITION pos = GetFirstViewPosition(); 
if (pos == NULL) 
return NULL; 

// find the first view that is a CRichEditView 

CView* pView; 
while (pos != NULL) 

pView = GetNextView(pos); 
if (pView->IsKindOf(RUNTIME_CLASS(CRichEditView))) 
return (CRichEditView*) pView; 


// can't find one--return NULL 

return NULL; 
于是代码改成了 
CView *pView = MDIGetActive()->GetActiveView(); 
if (pView->IsKindOf(RUNTIME_CLASS(CRichEditView ))) 


CRichEditCtrl &edit = ((CRichEditView *)pView)->GetRichEditCtrl(); 
edit.SetWindowText("sdf"); 

就成功了(虽然还是不懂为什么)
困扰我好长时间了,看来还是得多来CSDN求助啊

 

你可能感兴趣的:(记一个问题)