获取 Spin Control 的更新值
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
中进行计算吗?
看起来UDN_DELTAPOS用于覆盖头寸变化量,或防止变化,但实际变化发生在WM_VSCROLL(或WM_HSCROLL)消息中。我怀疑这些可能是您需要处理才能获得结果的消息....
(我基于 this 文档。)
我正在使用旋转按钮并想读取它的位置。
我已经覆盖了 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
中进行计算吗?
看起来UDN_DELTAPOS用于覆盖头寸变化量,或防止变化,但实际变化发生在WM_VSCROLL(或WM_HSCROLL)消息中。我怀疑这些可能是您需要处理才能获得结果的消息....
(我基于 this 文档。)