关键点:
1.响应消息,UDN_DELTAPOS;映射函数,OnDeltaposSpin;
消息结构体,
typedef struct _NM_UPDOWN{
NMHDR hdr; //通知代码的其他信息
int iPos; //当前位置
int iDelta; //位置的增减量,单击向上箭头此值为负数(默认)(取决于SetRange(min,max),还是SetRange(max,min))
}NMUPDOWN,FAR* LPNMUPDOWN;
实例代码:
void RINEXObsPage::OnDeltaposSpin2(NMHDR *pNMHDR, LRESULT *pResult) { LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 int iValue = pNMUpDown->iDelta; }
通过pNMUpDown->iDelta来进行各种操作。
2.m_spin.SetRange(0,12);
remark:当是min-max,则向上按,delta为正数;当是max-min时,则向上按,delta位负数。
m_spin.SetBuddy(GetDlgItem(IDC_EDIT4));
m_spin.SetBase(10);
BOOL iss;
int currentpOS = m_spin.GetPos32(&iss);//获取当前的pos,pos在range之间
参考:【1】http://blog.sina.com.cn/s/blog_50cc0ffd0100b0wg.html