MFC中视图类怎么访问对话框类里的成员变量
建立了一个MFC的单文档程序(名字叫Text),又建立了一个对话框,里面有几个编辑框控件并和对话框类成员变量(比如m_theta)相关联,还有一个按钮控件,现在的想法是在...
建立了一个MFC的单文档程序(名字叫Text),又建立了一个对话框,里面有几个编辑框控件并和对话框类成员变量(比如m_theta)相关联,还有一个按钮控件,现在的想法是在编辑框里输入数值后,按一下那个按钮,然后在CTextView里的函数可以访问我输入的内容(即m_theta)的值,应该怎么办?新手,写的比较乱,请大神帮帮我。
感谢各位网友的回答 既然有一个推荐答案 就选另外一个为满意答案吧 展开
感谢各位网友的回答 既然有一个推荐答案 就选另外一个为满意答案吧 展开
4个回答
展开全部
你想在按下按钮以后,CTextView函数就去访问m_theta的值
这很明显是一个事件,如果不通过发消息通知。
你的CTextView函数怎么知道什么时候去访问m_theta的值呢?
既然只有发消息,索性就把m_theta的值在消息中发过去不就好了吗?
这很明显是一个事件,如果不通过发消息通知。
你的CTextView函数怎么知道什么时候去访问m_theta的值呢?
既然只有发消息,索性就把m_theta的值在消息中发过去不就好了吗?
更多追问追答
追问
CTextView不是一个函数,是视图类,是它里面的函数想调用m_theta的值。
我在控件里面写了UpdateData(); UpdateData(FALSE); ,也不可以吗,您能写一下具体的代码吗,刚开始学MFC,什么概念都没有
追答
你的UpdateData(); 和UpdateData(FALSE);
只是把界面上显示的值传递给m_theta变量,或者把m_theta变量现在的值,显示在界面上。
你这是要从DLG类往上一层的CTextView类中传值。。所以最好通过消息去通知上一层
发消息你有几个步骤要做
1:自定义一个消息关键字
#define WM_DLG_TO_CTEXTVIEW WM_USER+1
2:GLD类中添加CTextView类的指针,然后在CTextView函数创建DLG对象的时候,给指向CTextView的指针赋值,这样到时候你DLG类发送的消息,才知道发送去哪个窗口
3:在DLG类的那个按钮点击的函数中发送消息
4:在CTextView类添加一个专门响应这个消息的函数
5:在CTextView类的消息印射中添加函数对WM_DLG_TO_CTEXTVIEW消息的关联
就是在CPP文件的
BEGIN_MESSAGE_MAP(。。。。)
//添加类似下面一句
ON_MESSAGE( WM_DLG_TO_CTEXTVIEW , OnMessageDlgData)
END_MESSAGE_MAP()
注:OnMessageDlgData是第四步创建的函数的函数名
6:终于最后一步了
就是在cpp中把OnMessageDlgData函数的代码实现吧。。
m_theta的值就在
OnMessageDlgData(WPARAM wParam, LPARAM lParam)
的参数中了,就看你发的时候放在哪个参数中了。。
大概的步骤就是这样的,具体的实现还要靠自己,不清楚明白就问吧,上网下载一些教程,课件,源程序看看吧
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没必要用消息机制。
首先在对话框中按下按钮的事件函数中 UpdateData(TRUE); (把数据从控件传给变量)
你的CTextView中弹出对话框的代码是否如此:
CXDlg dlg;
int ret = dlg.DoModal();
if(ret == IDOK)
{
CString str = dlg.m-theta;
}
首先在对话框中按下按钮的事件函数中 UpdateData(TRUE); (把数据从控件传给变量)
你的CTextView中弹出对话框的代码是否如此:
CXDlg dlg;
int ret = dlg.DoModal();
if(ret == IDOK)
{
CString str = dlg.m-theta;
}
更多追问追答
追问
是这样的我的其实不是对话框类,我首先是先把窗口分割为CVIew类 和一个CFormView类 现在CView类里面的函数想调用CFormView里面的对话框里面的编辑框的数值,就是想用Arm.len[]这种形式调用 编辑框的数据 我还有一个想法是想把 我在编辑框里面输入的数值 都放在一个公共类里面放在一起,然后给其它类访问
追答
这样更简单了,在你的窗口CMainFrame中保存这个对话框的指针 CXXDlg* dlg;
然后通过dlg来访问对话框中的数据。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以采用消息机制,在对话框中用一个变量保存视图的窗口句柄,然后发消息给这个窗口,视图就可以收到了
追问
我就是想吧编辑框控件和一个变量相关联,然后在视图类里面访问这个变量,我在视图类里面定义了一个对话框类的对象,并加上了对话框类的头文件,然后访问这个对象的成员变量,有错误,请问具体应该怎么办呢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义一个对话框的对象,然后点出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询