VC编辑框
voidCMyDlg::OnChangeZ1(){UpdateData(TRUE);intx[]={17,18,19,20,21,22,23,24,25,26,27,28...
void CMyDlg::OnChangeZ1() { UpdateData(TRUE); int x[]={17,18,19,20,21,22,23,24,25,26,27,28,29,30,35,40,45,50,60,70,80,90,100,150,200}; double y[]={2.97,2.91,2.85,2.8,2.76,2.72,2.69,2.65,2.62,2.6,2.57,2.55,2.53,2.52,2.45,2.4,2.35,2.32,2.28,2.24,2.22,2.2,2.18,2.14,2.12}; for(int i=0;i<25;i++) { if(m_Z1<x[i]) break; else if(x[i]==m_Z1) m_YFa=y[i]; else if(x[i]<m_Z1&&m_Z1<x[i+1]) m_YFa=y[i-1]+(y[i]-y[i-1])/(x[i]-x[i-1])*(m_Z1-x[i-1]); } UpdateData(FALSE);}
为什么我还没输数据,编辑框中就显示0,然后我输12,但是编辑框中0还在,而且12是反过来输进去的,就是变成21了,新手不知道怎么改了 展开
为什么我还没输数据,编辑框中就显示0,然后我输12,但是编辑框中0还在,而且12是反过来输进去的,就是变成21了,新手不知道怎么改了 展开
展开全部
建议你不要在onchange中使用updatedata 而应该考虑 GetDlgItemText得到字符串 然后在想办法把字符串转为 整型、浮点型的数值
或者 把 这段写到按钮点击中去
比如你输入12
当你输入1的时候 onchange被触发 执行updatedata 控件值 刷进关联的变量 updatedata false 变量值刷回控件显示
你输入2的是 第二触发 onchange 这个时候也许第一个onchange还没执行完......然后
输入导致改变 改变导致update update又导致改变 来回变 很可能死掉 或者 反应为 输入与显示 错乱
或者 把 这段写到按钮点击中去
比如你输入12
当你输入1的时候 onchange被触发 执行updatedata 控件值 刷进关联的变量 updatedata false 变量值刷回控件显示
你输入2的是 第二触发 onchange 这个时候也许第一个onchange还没执行完......然后
输入导致改变 改变导致update update又导致改变 来回变 很可能死掉 或者 反应为 输入与显示 错乱
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询