获取 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 相同吗?或者我可以告诉旋转控件使用 *pResultOnDeltaposSpin 中进行计算吗?

看起来UDN_DELTAPOS用于覆盖头寸变化量,或防止变化,但实际变化发生在WM_VSCROLL(或WM_HSCROLL)消息中。我怀疑这些可能是您需要处理才能获得结果的消息....

(我基于 this 文档。)