为什么UpdateData(true)后没有得到控件的值?

qepe 2004-03-18 01:45:58
在一个对话框里,有一个EDIT控件,我在EDIT控件改变时,先UpdateData(true),断点调试,可没有得到该控件的值,检查了变量关联,是正确的,还有resource.h文件中定义的ID,开始时有重复的,也手工改过来,但还是没有得到变量的值,到底什么原因呀?谢谢各位,在线等……
...全文
97 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
qepe 2004-03-18
  • 打赏
  • 举报
回复
m_strID是与EDIT关联的CString类型的变量
djhdu 2004-03-18
  • 打赏
  • 举报
回复
m_strID是不是关联的CString类型的变量啊?
qepe 2004-03-18
  • 打赏
  • 举报
回复
上面的变量m_ctrID为EDIT关联的control型变量。
qepe 2004-03-18
  • 打赏
  • 举报
回复
在输入内容改变时触发消息的处理函数中,部分代码如下
void CChangeDlg::OnChangeChangeEditId()
{
CRecordset rs(&db);

CString strDep,strJob;
CString str, strSQL;
int i = 1;

UpdateData(true); //***此处设断点,然后单步执行,m_strID即
为EDIT控件关联的变量,updatedata后,m_strID的值总是空的

if(!m_strID.Find("P"))
str.Format("P%05d",m_strID);
m_strID = str;

//构造记录集

rs.Open(CRecordset::forwardOnly,"select * from PERSON where ID='"+ str +"'");

但把代码如下,断点在断点处确可以得到str即EDIT传入的值
void CChangeDlg::OnChangeChangeEditId()
{
CRecordset rs(&db);

CString strDep,strJob;
CString str, strSQL;
int i = 1;

m_ctrID.GetWindowText(str);

if(m_strID.Find("P")) // 此处m_strID.find("P")没有意义,只
// 是为了测试能不能得到控件的值,但是当我确定能
// 得到后,把m_strIDfind("P")改为str.find("P"),
// 再试断点跟踪时str值又是空的。还有,我在if(
// m_strID.find("P");前加上 m_strID = str.此时str
// 是控件传入的值,但m_strID仍是空值。真是太奇
// 怪了,大家帮我看看怎么回事?
str.Format("P%05d",m_strID);
m_strID = str;

//构造记录集

rs.Open(CRecordset::forwardOnly,"select * from PERSON where ID='"+ str +"'");


//顺序取出记录集中的资料
LVOLCANO 2004-03-18
  • 打赏
  • 举报
回复
我也遇到这个问题了,好象updatedata没什么用处一样
gieroland 2004-03-18
  • 打赏
  • 举报
回复
在什么函数,怎么调用的UpdateData(),贴代码看看,一看就知道了
A_Qiao 2004-03-18
  • 打赏
  • 举报
回复
把关联变量的值改一下,然后UpdateData(FALSE),看看能否修改控件的值
A_Qiao 2004-03-18
  • 打赏
  • 举报
回复
检查一下CChangeDlg::DoDataExchange()这个函数,看看你的m_strID是否确实跟控件关联了。
快乐鹦鹉 2004-03-18
  • 打赏
  • 举报
回复
和ID没有关系,只要同一个对话框中的ID不重复就可以了。肯定程序那个地方有错啊。贴出来看看吧。
top_hipster 2004-03-18
  • 打赏
  • 举报
回复
程序肯定存在问题,建议好好检查
crushor 2004-03-18
  • 打赏
  • 举报
回复
我有点看不大明白,EDIT关联的是哪个变量?什么类型?
qepe 2004-03-18
  • 打赏
  • 举报
回复
救命呀!………
qepe 2004-03-18
  • 打赏
  • 举报
回复
还有,在resource.h文件中定义的ID值有什么要求,会不会是改错了?我是有重复ID的,都把原来的1000多改为2000多,把1改为2。
qepe 2004-03-18
  • 打赏
  • 举报
回复
都快来看看呀,还没吃完饭呀?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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