提问人:Daniel Bauer 提问时间:5/22/2019 更新时间:5/22/2019 访问量:211
获取旋转控制的更新值
Getting the updated value of Spin Control
问:
我使用旋转按钮并想读取它的位置。
我已经覆盖了,但随后我必须评估 .如果我设置 ,它将为我进行计算,但我的值滞后。OnDeltaposSpin(...)
NMHDR
*pResult=0
void CClass::OnDeltaposSpin(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
*pResult = 0;
UpdateData(TRUE);
// I want to use the data here
}
因此,如果 Spin 最初是 0,则第一次单击不会对我的数据执行任何操作,第二次单击会将其变为 1,依此类推。
有没有其他消息我可以处理,之后触发器会像其他控件一样工作?或者我可以告诉旋转控件使用 在里面进行计算吗?UDN_DELTAPOS
EN_CHANGE
*pResult
OnDeltaposSpin
答:
2赞
jwismar
5/22/2019
#1
看起来UDN_DELTAPOS用于覆盖仓位变化量或防止变化,但实际变化发生在WM_VSCROLL(或WM_HSCROLL)消息中。我怀疑这些可能是您需要处理的消息才能获得结果......
(我基于这个文档。
评论
1赞
Daniel Bauer
5/22/2019
这确实是我正在寻找的。它只是比我想象的要复杂......为什么所有可能的滚动条(包括旋转控件)都有此消息,而这可能只是每个单独的 scollbar/spinctrl 的单独消息?
评论