Cview中的变量获得对话框编辑框的内容

seldon_shi 2010-07-27 07:58:03
创建了一个视图类程序,在其中又创建了一个对话框,属于不同的类 然后我想让视图类中的某个变量随着对话框中编辑框的内容改变而改变,如何通过响应编辑框内容改变函数实现?
...全文
113 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
seldon_shi 2010-07-28
void CDisplayView::OnChangeNnum()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CFormView::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.

// TODO: Add your control notification handler code here

UpdateData(TRUE);
CMainFrame* pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd; //得到指向指定视图(对话框)的指针
CMyView *pMyView=(CMyView *)pFrame->m_splitter.GetPane(0,1); // 指针指向第一行第0列的对话框
pMyView->UpdatenNum(m_nNum);
// CMyView *pView; //为什么这样就出错
// pView->UpdatenNum(m_nNum);
}

问题解决,但是还有个问题 为什么用第一种方式正确,用第二种方法就不行呢?运行时提示内存不能为written?
回复
na_he 2010-07-28
目前编译器还不支持unicode.文件名字最好用英文。
回复
na_he 2010-07-28
CView* pView = (CView*)m_ImageSplitter.GetPane(0, 0);

只能通过主框架来访问。比如上面的用法。
回复
seldon_shi 2010-07-28
[Quote=引用 4 楼 visualeleven 的回复:]

引用楼主 beishuiqing 的回复:
创建了一个视图类程序,在其中又创建了一个对话框,属于不同的类 然后我想让视图类中的某个变量随着对话框中编辑框的内容改变而改变,如何通过响应编辑框内容改变函数实现?

按照你上面说的,你的对话框应该是视图窗口的子窗口,那么你在对话框中应该很容易访问视图类
[/Quote]

该怎么访问视图类
如果增加 #include “监控View。h”的话,出现错误:
e:\vc++\我的毕设\监控view.h(30) : error C2143: syntax error : missing ';' before '*',


双击错误指向了 CMyDoc* GetDocument();怎么办?
回复
seldon_shi 2010-07-28
问题补充:
我的对话框实在主视图中分割窗口在放进去的。对话框是基于CFormView类的,主视图是基于CscrollView类的,而且工程名称是中文“监控”,所以主视图的view类是CMyView,怎么解决 谢谢
回复
seldon_shi 2010-07-28
如何在对话框类中获得指向主视图类的指针呢?
用包含头文件的方式他提示出错了
回复
youhao1999 2010-07-28
[Quote=引用 1 楼 wltg2001 的回复:]
引用楼主 beishuiqing 的回复:
创建了一个视图类程序,在其中又创建了一个对话框,属于不同的类 然后我想让视图类中的某个变量随着对话框中编辑框的内容改变而改变,如何通过响应编辑框内容改变函数实现?

最方便的方法是,当编辑框内容改变时,向视图类发送自定义消息,通知视图类对话框已经改变,视图类响应自定义消息,并做相应的改变。
[/Quote]
............
回复
na_he 2010-07-28
因为CMyView 是框架分割出来的,存在的。


// CMyView *pView; //为什么这样就出错
// pView->UpdatenNum(m_nNum);

这个是个空指针,对空指针进行操作,结果是可知的,就是crash.呵呵。
回复
Eleven 2010-07-27
[Quote=引用楼主 beishuiqing 的回复:]
创建了一个视图类程序,在其中又创建了一个对话框,属于不同的类 然后我想让视图类中的某个变量随着对话框中编辑框的内容改变而改变,如何通过响应编辑框内容改变函数实现?
[/Quote]
按照你上面说的,你的对话框应该是视图窗口的子窗口,那么你在对话框中应该很容易访问视图类
回复
wltg2001 2010-07-27
[Quote=引用 2 楼 worcy_kiddy 的回复:]
获得视图类的指针,发消息过去!
[/Quote]
如果要获取视图类的指针的话,就不用发消息了,直接改吧:
用:CXXXView pView=(CXXXView *)((CMainFrame*)AfxGetMainWnd())-> GetActiveView() ;
然后直接用pView操作视图吧
回复
黑泡泡选手 2010-07-27
获得视图类的指针,发消息过去!
回复
wltg2001 2010-07-27
[Quote=引用楼主 beishuiqing 的回复:]
创建了一个视图类程序,在其中又创建了一个对话框,属于不同的类 然后我想让视图类中的某个变量随着对话框中编辑框的内容改变而改变,如何通过响应编辑框内容改变函数实现?
[/Quote]
最方便的方法是,当编辑框内容改变时,向视图类发送自定义消息,通知视图类对话框已经改变,视图类响应自定义消息,并做相应的改变。
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告