void CNumSpinCtrl::OnDeltapos(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMUPDOWN pUD = reinterpret_cast<LPNMUPDOWN>(pNMHDR);
	*pResult = 0;
	
	int val = GetPos() + pUD->iDelta;
	if (pUD->iDelta < 0) { // spin down
	} else {
	}
	
	SetValueForBuddy(val);
}
Exemple #2
0
BOOL CFloatSpinCtrl::OnDeltapos(NMHDR* pNMHDR, LRESULT* pResult) {
    NM_UPDOWN* pUD = (NM_UPDOWN*)pNMHDR;

    double val = GetPos() + m_Delta * pUD->iDelta;

    const bool can_wrap = (UDS_WRAP & GetStyle());


    if (pUD->iDelta < 0) {
        // spin down
        double abs_eps = fabs(EPS * max (val, m_MinVal));
        if (abs_eps < EPS) {
            abs_eps = EPS;
        }

        if (m_MinVal - val > abs_eps) {  //if (val < m_MinVal){		
            if (can_wrap) {
                val = m_MaxVal;
            } else {
                val = m_MinVal;
            }
        }
    } else {
        // spin up
        double abs_eps = fabs(EPS * max (val, m_MaxVal));
        if (abs_eps < EPS) {
            abs_eps = EPS;
        }

        if (val - m_MaxVal > abs_eps) {   //if (val > m_MaxVal){		
            if (can_wrap) {
                val = m_MinVal;
            } else {
                val = m_MaxVal;
            }
        }
    }

    SetValueForBuddy(val);

    *pResult = 0;

    return FALSE; // let parent process this notification too.
}
Exemple #3
0
void CFloatSpinCtrl::SetPos(double val) {
    SetValueForBuddy(val);
    SetIntPos(val);
}