spin control 和 Edit control

运行环境: visutai stadio 2008

一,在对话框中建立 spin control 和 edit control



二,spin control 和 edit control 建立伙伴关系

1.自动建立伙伴关系
 a.选中 spin control  设置属性
    其中:

       Alignment:  共有3个选项Unattached,Left,Right Align,按自己的爱好选一个,决定SPIN是在 右边 还在 左边;

       Arrow Key:    设置为TRUE ,当 FOCUS SPIN 上时, 可以通过键盘上的上下键对其进行操作,FALSE时则不可以

      Wrap:             设为TRUE ,当超过范围时,则进行回绕,FALSE.......

      Auto Buddy:   TRUE ,它将把它的下一个控件自动设为自己的BUDDY,当为FALSE时我们,

                可以通过SetBuddy(CWnd*)为其设定一个BUDDY !

      Set Int Buddy: 设为TRUE,它将把伙伴控件值设为整数.



b.还需要设置 两个控件的tab顺序,自动建立伙伴关系时,edit control  tab顺序的值 需要 比   spin control  tab顺序的值 小 1

   CTRL+D,这时对话框会显示tab的顺序,以数字的形式显示,然后用鼠标左键依次点击,这时数字就会变成你点击的顺序。

c.设置spin control 的范围 

  这时需要为spin control 添加一个变量,方便对齐进行操作,选中 spin控件 右键-->添加变量 即可

  我为三个spin控件添加的是  m_spin1 ,m_spin2, m_spin3   这个可以随意命名的,方便记忆就行

    m_spin1.SetRange(1, 3);
    m_spin2.SetRange(60, 200);
    m_spin3.SetRange(1, 100);


建立伙伴关系,设置范围后,点击spin控件,edit控件中的值就会随着变化



2.用程序建立伙伴关系        (这个 我没有亲自操作过..........)

 

   m_Spin.SetBuddy(GetDlgItem( m_Edit1 )); // m_Edit1为 Edit空间的ID

   m_Spin.SetRange(0,100);//设置范围



实现数值的增减

双击控件添加消息

void CAlarm::OnDeltaposSpin5(NMHDR *pNMHDR, LRESULT *pResult)
{
       LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
       UpdateData(true);
       CString ss;
       if(pNMUpDown->iDelta == -1) // 如果此值为-1 , 说明点击了Spin的往下的箭头
      {
            double a;
            a=wcstod(m_Edit1,NULL)-1;
            ss.Format(_T("%.1f"),a);
       }
       else if(pNMUpDown->iDelta == 1) // 如果此值为1, 说明点击了Spin的往上的箭头
      {
           double a;
           a=wcstod(m_Edit1,NULL)+1;
            ss.Format(_T("%.1f"),a);
      }
      m_Edit1=ss;
      UpdateData(false);
      *pResult = 0;
}








猜你喜欢

转载自blog.csdn.net/woxiangzi/article/details/49802995