CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
CDDownView* pDownView=(CDDownView *)pMain->GetActiveView(); CEdit* pEdit = ( CEdit * )pDownView->GetDlgItem( IDC_EDIT1 ); //HWND hEdit = ::GetDlgItem( pDownView->GetSafeHwnd(), IDC_EDITTEXT );

if(pEdit != NULL)
pEdit->SetWindowText(_T("hello"));

解决方案 »

  1.   

    void CDUpView::OnBnClickedButton1()
    {
    CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
    CDDownView* pDownView=(CDDownView *)pMain->GetActiveView(); CEdit* pEdit = ( CEdit * )pDownView->GetDlgItem( IDC_EDIT1 ); //HWND hEdit = ::GetDlgItem( pDownView->GetSafeHwnd(), IDC_EDITTEXT );

    if(pEdit != NULL)
    pEdit->SetWindowText(_T("hello"));}
      

  2.   

    你在另外一个View里面按了按钮,这个View就是ActiveView,是得不到你需要的
    CDDownView的指针的,所以得到的pEdit是空,因为没有这个控件在这个View上。
      

  3.   

    你可以向那个VIEW发消息让返回pEdit
      

  4.   

    你是切分窗口吗?不用GetActiveViewCSplitterWnd* pWnd = (CSplitterWnd*)GetParent();
    pView =  pWnd->GetPane(0, 0);然后强制转换一下(C*****View*)pView