Re[2]: Странное поведение CSpinButtonCtrl (повтор)
От: BorisM  
Дата: 23.12.04 09:53
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>То есть Вам гужно смотреть на pNMUpDown->iPos и pNMUpDown->iDelta для получения того значения, которое "будет" (а не GetPos32).


Спасибо за ответ.
Я до GetPos32() пытался получить нужное значение как: pNMUpDown->iPos + pNMUpDown->iDelta. Результат мне тоже не очень понравился. После некоторых экспериментов, окончательный вариант выглядит так:
void CSpinDlg::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
    int static iPrevPos = m_Spin.GetPos32(); //переменная, где хранится предыдущее значение
    
    m_Spin.SetPos32(iPrevPos + pNMUpDown->iDelta);
    m_Edit = m_Spin.GetPos32();
    iPrevPos = m_Spin.GetPos32();
    
    UpdateData(FALSE);
    *pResult = 0;
}

Может кому пригодится
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.