VC++中的窗体类是什么?如何在函数中更改编辑框的值 5

我做了一个测试我声明了CLlk_wgDlg*mine;(由于不知道编辑框属于哪个类变量所以生命一个全局变量mine)在某个类成员函数里,比如在一个按钮的代码中,我做了如下... 我做了一个测试
我声明了CLlk_wgDlg *mine;
(由于不知道编辑框属于哪个类变量所以生命一个全局变量mine)
在某个类成员函数里,比如在一个按钮的代码中,我做了如下测试
其中m_px之类的是编辑框关联的类变量,为什么这样更改mine中的值,窗体里的编辑框不会更新?
或者你干脆告诉我窗体本身的类变量是什么
是CLlk_wgDlg xxx?
void chesk(){
mine->m_px1=13;
mine->UpdateData(false);
}
void CLlk_wgDlg::OnButton5()
{
// TODO: Add your control notification handler code here
mine=this;
m_px2=5;
UpdateData(false);
chesk;
// play();

}
展开
 我来答
归悦欣cf
2012-08-08 · TA获得超过1444个赞
知道大有可为答主
回答量:4250
采纳率:59%
帮助的人:1339万
展开全部
窗口类不等于窗体。所以改变窗口类中与窗体相关联的某一个编辑框类变量的值是不会改变编辑框的值的,需要调用窗口类对象的UpdateData(false)函数才能改变。
看了你上面的代码,这样是错误的:
CLlk_wgDlg *mine;
void chesk(){
mine->m_px1=13;
mine->UpdateData(false);
}
错误:mine是定义的指针变量,但是指针并没有被赋值。所以之后的
mine->m_px1=13;
mine->UpdateData(false);
是错误的。
void CLlk_wgDlg::OnButton5()
{
// TODO: Add your control notification handler code here
mine=this;
m_px2=5;
UpdateData(false);
chesk;
// play();

}
在这个函数中,如果 m_px2是CLlk_wgDlg类中与窗体上一个编辑框相关联的变量,
这要改变编辑框的值,只需两句就足够:
m_px2=5;
UpdateData(false);
mine=this;这语句是多余的。还有调用chesk函数肯定出错,因为前面已经说出错误的原因。
说白了,你还是没弄明白c++窗口类和窗体的关系。
追问
mine=this不是把mine指向this了吗?换句话说调用chesk时改变了mine中的内存数据,那this中的不会被改变吗?
追答
不好意思,没有仔细阅读你的代码,你的方法是正确的。
ksca00130318
2012-08-03 · TA获得超过319个赞
知道小有建树答主
回答量:185
采纳率:0%
帮助的人:182万
展开全部
没看明白你说的什么意思。猜测如下:
如果你用的VS的话,ctrl+双击左键,弹出来一个设置对话框,在里面设置编辑框的变量,编辑框属于CEDIT类,m_edit。然后在函数中:
m_edit.SetWindowText(“aa”);就能改变编辑框的值
如果想获取,就用m_edit.GetWindowText()函数。
另外,你用updateData更新数据,你需要给编辑框关联值类型的变量,而不是类类型的变量。
就是关联个int或者cstring类型的变量,而不是cedit类型的
追问
用的是VC++6.0,就是关联了变量然后CLlk_wgDlg 这个是编辑框所属的类,我创建了CLlk_wgDlg *mine; 在按钮的代码中mine=this;也就是把Mine指向了this为什么改变了MINE的值而this里的编辑框中的值不改变?
追答
没有必要非要通过对话框指针来操作,你又不是夸对话框操作的。vc6.0里面也有方法直接关联控件类型变量的,如果你手动添加,绝对是少东西了。另外如果m_px2是控件类型的变量,根本就编译不过去,你那绝对是值类型的变量
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
poseidon_k
2012-08-03 · TA获得超过2580个赞
知道小有建树答主
回答量:1223
采纳率:0%
帮助的人:316万
展开全部
与一个编辑框相关联的对象可以有两种:CString类对象和CEdit类对象。
CEdit由CWnd类继承而来,是一个窗口类。
如果m_px是CString类的,那么就需要先给它赋一个字符串值,然后调用UpdateData(false);更新数据显示。
如果m_px是CEdit类的,调用CEdit类的SetWindowText成员函数就可以更新数据显示。

假如你的程序中m_px是CString类的,你对它赋值13是不对的,需要赋值一个字符串,比如:
mine->m_px1="13";
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式