我在我的程序中用到几个spin控件,可是运行时按控件的上下箭头时相关联的编辑框内容没有发生变化,请问要怎样才能使编辑框内容随之改变?
谢谢.

解决方案 »

  1.   

    是否设置了AutoBuddy属性,注意添加时的顺序,现放Edit然后是Spin并设置auto Buddy
      

  2.   

    我把控件都删了然后重新加一遍,先放Edit然后放Spin并设置了auto Buddy属性
    可是按Spin时编辑框好像是得到焦点了,不过数字没变啊.
    请问怎样设置Spin的步长值?怎样让编辑框的内容随Spin按键按下的情况而增加或减少步长值呢?
    谢谢.
      

  3.   

    void CSpinDlg::OnDeltaposSpin1(NMHDR* pNMHDR, LRESULT* pResult) 
    {
    NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
    // TODO: Add your control notification handler code here
    if(pNMUpDown->iDelta < 0)
    {
    m_iEdit += 1;
    }
    else
    {
    m_iEdit -= 1;
    } UpdateData(FALSE);
    *pResult = 0;
    }
      

  4.   

    还要勾上Set buddy integer
      

  5.   

    我勾上Set buddy integer后,运行时弹出错误警告说是winocc.cpp文件有个assertion错误,在第239行,我打开那个文件,找到那一行语句为: ASSERT(::IsWindow(m_hWnd));我在它前面设了断点,运行时到这里我查看m_hWnd的值为0,但我不知道是谁调用了这个函数,函数原型为int CWnd::GetWindowText(LPTSTR lpszString, int nMaxCount) const
    不知道为什么会有这个错误?弹出警告的对话框有三个按钮:终止,重试,忽略;
    如果是按忽略的话就可以正常运行程序了,这又是怎么回事呢,真是百思不得其解啊:(
      

  6.   

    1 勾上 Set buddy integer
    2 绑定spin.SetBuddy(GetDlgItem(IDC_EDIT1));
    你可以新建个工程,没有问题的