CSpinButtonCtrl的getpos得到的值比控件上的值延迟? 我响应了CSpinButtonCtrl的UDN_DELTAPOS事件,在事件里使用getpos,发现得到的值比spin控件上显示的值总是延迟一个呢?比如我不知道何故,请大侠指点~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题已解决,在CSpinButtonCtrl控件的UDN_DELTAPOS事件响应的时候,尚未对控件的位置进行更改,只有函数执行结束后,返回0值,才能做出更改,如果想在UDN_DELTAPOS响应函数OnDeltaposRow中得到已更新的值,需要根据原值ipos和修改变量iDelta计算:void CMyDlg::OnDeltaPosMySpin(NMHDR *pNMHDR, LRESULT *pResult){ LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 *pResult = 0; short curpos = pNMUpDown->iPos+pNMUpDown->iDelta; MessageBox("Current position: %d",curpos);} 但上述方法还有一个问题,在边界的时候可能出现range之外的值。如range设置为(0,100),某时刻spin的值为0,继续点击下三角符号,会弹出对话框:Current position: -1;回过头来发现spin 的显示是100(正常),但我希望得到的是 弹出对话框 :Current positon:100呀!用个判断大概可以解决,不过请问有没有比较常规的做法啊? 常规做法是。给控件绑定个变量。在用到的地方直接Updatadata。就可以直接使用了 问个modbus的问题 VS2005编译问题?? 怎么让不是在我程序里拨号上网的ADSL断线? 请问C#读取内存中的中文后,怎么处理成为UNICODE码? 请问如何把图像文件保存到XML文件中 怎么用VC做帮助文件??????? 看看下面代码什么意思? 请教一个 简单问题 ,谢谢 一个奇怪的现象,有没有高手知道是怎么回事?(送20分) 请问控件的注册是怎么回事? vc ras 调用RasDial时有多个多调制解调器如何选择指定的调制解调器进行拨号? 大文件上传 ,断点续传?
void CMyDlg::OnDeltaPosMySpin(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
short curpos = pNMUpDown->iPos+pNMUpDown->iDelta;
MessageBox("Current position: %d",curpos);
}