两个edit框intm_edit1,m_edit2;一个spin控件CSpinButtonCtrlm_spin;spin控制edit1的数值:AutoBuddySetBu 两个edit框intm_edit1,m_edit2; 一个spin控件CSpinButtonCtrlm_spin; spin控制edit1的数值:AutoBuddySetBuddyinteger都勾上
两个edit框intm_edit1,m_edit2;一个spin控件CSpinButtonCtrlm_spin;spin控制edit1的数值:AutoBuddySetBu 两个edit框intm_edit1,m_edit2; 一个spin控件CSpinButtonCtrlm_spin; spin控制edit1的数值:AutoBuddySetBuddyinteger都勾上了 taborder紧挨着edit1.点spin上下edit1界面数值会上下动. OnInitDialog()里头添加:m_spin.setrange(1,10); 类初始化里头: m_edit1=1;m_edit2=1; 添加spin响应函数:OnDeltaposSpin(...) 里面加UpdateData(); m_edit2=m_edit1; UpdateData(FALSE); 效果应该是点spin之后edit2会随着edit1同步变化。 但是事实上edit2总是比edit1慢一步。也就是edit1从1变成2,edit2不变 edit1变3了。edit2才从1变成2。 用debug在OnDeltaposSpin(...)里头加breakpoint发现UpdateData()之后 尽管界面上头的数值已经变了,但是m_edit1并没有变。 好奇怪。 求高人指点。代码没有问题。可以自己回去试试。
8 个解决方案
#1
自己顶一下
#2
自己再顶一下。
#3
顶
#4
其间会有一个序号问题 TAB
#5
应该在Edit1的变化响应函数里添加 m_nEdit2=m_nEdit1 m_cEdit1.UpdateData()
#6
voidCMy2002Dlg::OnVScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar) { //TODO:Addyourmessagehandlercodehereand/orcalldefault UpdateData(); m_edit2=m_edit1; UpdateData(FALSE); CDialog::OnVScroll(nSBCode,nPos,pScrollBar); }
#7
sun:序号edit1之后是spin再后面是edit2. Life:m_cEdit1.UpdateData();放在OnChangeEdit1()里面会出现assertionfailed错误。选择忽略之后会出现dialog。但是点击spin只有edit1发生变化,edit2不变。 我后来在OnChangeEdit1()里头加了以下代码: UpdateData(TRUE); m_edit2=m_edit1; UpdateData(FALSE); 也会出现四次assertionfailed错误和两次试图执行系统不支持操作。都忽略之后。可以实现edit1和edit2同步变化。 但是程序有错总不是办法。 大虾们救命啊 大虾们救命啊
#8
jump是对的。高手。 放分。谢谢啦。【文章出处:
香港多ip站群服务器 http://www.558idc.com/hkzq.html提供,感恩】