我用CSplitterWnd静态切分上面为CScrollView基类,下面为EDITVIEW类。
我在
#include "tiedit.h"
void CScrollView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
.......
 Ctiedit stiedit;
 stiedit.WriteText(stixian);
......
}
出现
cannot access protected member declared in class 'Ctiedit'
see declaration of 'Ctiedit::Ctiedit'
error C2248: 'Ctiedit::~Ctiedit' : cannot access protected member declared in class 'Ctiedit'
see declaration of 'Ctiedit::~Ctiedit'
error C2819: type 'Ctiedit' does not have an overloaded member 'operator ->'
 see declaration of 'Ctiedit'class Ctiedit : public CEditView
{
public:
Ctiedit();           // protected constructor used by dynamic creation
DECLARE_DYNCREATE(Ctiedit)

解决方案 »

  1.   

    不好意思,我还没说完,简单点
     Ctiedit× stiedit;
    我改指针编译没错运行到
    stiedit.WriteText(stixian);void Ctiedit::WriteText(LPCSTR lpszString)
    {
      CEdit& Edit = GetEditCtrl();
      Edit.SetSel(-1, -1, NULL);
      Edit.ReplaceSel(lpszString); //这局不行了  
    }
      

  2.   

    ……
    你这是在往一个没有窗口的局部变量写文字?
    怎么不在CSplitterWnd创建的EDITVIEW上面写?
      

  3.   

    能不能详细点?我使用
    CSplitterWnd* wnd=(CSplitterWnd*)GetParent();
    wnd->SetColumnInfo(0,0,0);
    wnd->SetRowInfo(1,50,50);
    wnd->GetRowCount();
    wnd->SetWindowText(stixian);
    也不行啊!我好苦啊!
      

  4.   

    CMyView* CMainFrame::GetRightPane()
    {
       CWnd* pWnd = m_wndSplitter.GetPane(0, 1);
       CMyView* pView = DYNAMIC_DOWNCAST(CMyView, pWnd);
       return pView;
    }