我做了一个编辑框和旋钮的组合框,在编辑框里输入一个数字,然后函数OnEnChangeEdit001()自动保存数字,现在不知道怎么回事刚运行软件的时候这个函数就触发了,初始化显示的数字永远为0,请问这个怎么回事,怎么解决啊求高手帮忙看一下触发函数:
void CConsoleBar::OnEnChangeEdit001()
{
// TODO:  如果该控件是 RICHEDIT 控件,则它将不会
// 发送该通知,除非重写 CDialogBar::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。 // TODO:  在此添加控件通知处理程序代码
CSpinButtonCtrl *pStep001=(CSpinButtonCtrl *)GetDlgItem(IDC_SPIN_001);
theApp.m_nOn001=pStep001->GetPos();
theApp.WriteProfileInt("Param","On001",theApp.m_nOn001)
}
初始化:
CSpinButtonCtrl *pSpin001=(CSpinButtonCtrl *)GetDlgItem(IDC_SPIN_001);
pSpin001->SetBuddy(GetDlgItem(IDC_EDIT_ON001));
pSpin001->SetRange(0,2500);
pSpinOrigin->SetPos(theApp.m_nOn001)

解决方案 »

  1.   

    pSpin001->SetBuddy把edit与spin连在一起了。
      

  2.   

    可以不要pSpin001->SetBuddy
    自己管理edit的显示。
      

  3.   

    但是还是不知道为什么在软件运行的时候CConsoleBar::OnEnChangeEdit001( )会运行,那时候没有向里面输入数字的
      

  4.   

    因为pSpinOrigin->SetPos(theApp.m_nOn001)这句在改变spin的同时要改变edit,因为edit是spin的伙计
      

  5.   

    可以不要pSpin001->SetBuddy
    自己管理edit的显示。
      

  6.   

    不要pSpin001->SetBuddy也没用啊,每次打开软件显示的数字还是为0,每次都先进关联函数CConsoleBar::OnEnChangeEdit001( )
      

  7.   

    查下代码逻辑有无焦点进入及退出动作,有的话就会触发EN_CHANGE消息。
      

  8.   

    这段代码是在CDialogBar的派生类中的,请高手指点一下啊