基本操作
CSpinButtonCtrl需要一个伙伴窗口才可以完成功能。
伙伴窗口一般为编辑控件
在dialog上加 spin控件, edit控件。
spine控件的属性 Set buddy integer要选择,我试了很长时间不起作用就是因为这个没有选择
然后代码为:
m_spin1.SetBuddy(GetDlgItem(IDC_EDIT1)); //设置伙伴窗口
m_spin1.SetRange(0, 255); //设置min~max
m_spin1.SetPos(2); //设置起始位置
m_edit1 = 9;
UpdateData(false);
其中:
m_spin1绑定到spin控件。 为控件类型
m_edit1绑定到edit控件。 为integer类型
消息
当改变伙伴窗体的内容时,由伙伴窗体发出EN_UPDATE消息
当改变spin值时,ON_WM_VSCROLL (纵向控件) ON_WM_HSCROLL(横向控件)
void CDlgSpin::OnUpdateEdit1()
{
// TODO: Add your control notification handler code here
UpdateData();
m_static_update.Format("%s: %s", "m_static_update", m_edit1);
UpdateData(false);
//AfxMessageBox(m_edit1);
}
void CDlgSpin::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
int i = m_spin1.GetPos();
CString str;
str.Format("%d", i);
m_static_vscroll.Format("%s: %s", "m_static_vscroll", str);
UpdateData(false);
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}