获取旋转控制的更新值

时间:2019-05-22 13:18:00

标签: mfc

我正在使用旋转按钮,想读取它的位置。 我已覆盖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进行计算?

1 个答案:

答案 0 :(得分:2)

看起来UDN_DELTAPOS用于覆盖位置更改量或防止更改,但是实际更改发生在WM_VSCROLL(或WM_HSCROLL)消息中。我怀疑这些可能是您需要处理以获取结果的消息。...

(我基于this文档。)