mfc中spin控件与edit控件关联的问题
建立一个基于对话框的MFC应用程序,包括3个控件,一个编辑控件,一个微调控件和一个滑块控件。将编辑控件IDC_EDIT1设置为微调控件IDC_SPIN1的关联控件(它们的Tab Order顺序相差1,并且微调控件的属性设置中选中了Auto buddy和Set buddy integer)。我希望把这3个控件都绑定起来,也就是让它们同步。为微调控件添加控制变量m_spin,为滑块控件添加控制变量m_slider,为编辑控件添加int型变量m_number。在对话框的初始化函数OnInitDialog()中,添加代码:
m_spin.SetRange(0,20);
m_spin.SetPos(5);
m_spin.SetBuddy(GetDlgItem(IDC_EDIT1));
m_slider.SetRange(0,20);
m_slider.SetTicFreq(2);
m_slider.SetPos(5);
在微调控件的UDN_DELTAPOS消息响应函数OnDeltaposSpin1()中,添加代码:
m_slider.SetPos(m_spin.GetPos());
m_number=m_spin.GetPos();
UpdateData(false);
在编辑控件的EN_CHANGE消息响应函数OnChangeEdit1()中,添加代码:
UpdateData(true);
m_spin.SetPos(m_number);
m_slider.SetPos(m_number);
在滑块控件的NM_CUSTOMDRAW消息响应函数OnCustomdrawSlider1()中,添加代码:
m_spin.SetPos(m_slider.GetPos());
m_number=m_slider.GetPos();
UpdateData(false);
编译通过,但是不能运行。
主要的问题就是对于已经关联好的编辑控件与微调控件,当编辑控件中的值发生变化时,如何使微调控件的位置相应的变化。