请高手指点,如何实现对话框类与文档类的通信

lzp_k2 2006-05-23 05:29:57
怎样才能把对话框上编辑控件获得的值传给文档呢?
还是说的详细点:
我的工程为MyPro,是MDI文档,
建立了一个对话框Dlg1,然后基于此对话框建立了CDlg1类
在Dlg1中添加一个Button1,和一个Edit1控件(对应的变量起名为m_Dlg1Edit1),
添加Button1的点击事件(想在点击的时候把m_Dlg1Edit1的值赋给Doc中的m_Edit):
void CDlg1::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true); //读入用户输入的值
CMainFrame* pWnd=(CMainFrame*)AfxGetApp()->GetMainWnd();
CMyProDoc* m_pDoc=pWnd->m_pViewActive->m_pDocument;
m_pDoc.m_Edit=m_Dlg1Edit1;
}
//编译时的错误提示
“CFrameWnd::m_pViewActive” : 无法访问 protected 成员(在“CFrameWnd”类中声明)
“CView::m_pDocument” : 无法访问 protected 成员(在“CView”类中声明)
“=” : 无法从“CDocument *”转换为“CMyProDoc *”

1〉我不知道怎么改,
2〉这个程序很有点笨,应该有其他很简单的方法吧?望高手指点
...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzp_k2 2006-05-25
  • 打赏
  • 举报
回复
结贴,给分。
lzp_k2 2006-05-23
  • 打赏
  • 举报
回复
试了一下,有错误提示是这样的:
“->GetDocument”的左侧必须指向类/结构/联合
“GetActiveView”: 即使使用参数相关的查找,也未找到标识符

该怎么改啊?
lzp_k2 2006-05-23
  • 打赏
  • 举报
回复
试一下
lisypro 2006-05-23
  • 打赏
  • 举报
回复
CMyProDoc* m_pDoc=pWnd->m_pViewActive->m_pDocument;
改为
CMyProDoc* m_pDoc=GetActiveView()->GetDocument();
lzp_k2 2006-05-23
  • 打赏
  • 举报
回复
哈哈,看到了一点希望,只剩下第三个错误提示了
lzp_k2 2006-05-23
  • 打赏
  • 举报
回复
试一下
DentistryDoctor 2006-05-23
  • 打赏
  • 举报
回复
pWnd->GetActiveView()->GetDocument();


???

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧