у меня есть CSpinButtonCtrl
Класс подкласс называется MySpinButtonCtrl
, В этом классе у меня есть OnDeltapos
объявлено событие, которое отвечает за увеличение и уменьшение числовых значений на моем счетчике:
void CMySpinButtonCtrl::OnDeltapos(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
if (GetKeyState(VK_CONTROL) < 0) // ctrl key pressed ==> limit value
{
int lower, upper;
GetRange(lower, upper);
if (pNMUpDown->iDelta < 0)
*pResult = MySetSpinPos(lower); // lower limit
else
*pResult = MySetSpinPos(upper); // upper limit
}
else
{
int nDelta;
if (GetKeyState(VK_SHIFT) < 0) // shift key pressed==> speed x 10
nDelta = 10 * pNMUpDown->iDelta;
else
nDelta = pNMUpDown->iDelta;
*pResult = MySetSpinPos(pNMUpDown->iPos + nDelta);
}
}
Когда я продолжаю нажимать мой счетчик с левую кнопку мыши он работает совершенно нормально, однако, когда я пытаюсь нажать мой счетчик с сенсорный экран, это нужно два жёсткие жесты.
Я пытался поймать событие касания прессы с OnPointerDown
, но я понятия не имею, как это реализовать:
afx_msg LRESULT CMySpinButtonCtrl::OnPointerdown(WPARAM wParam, LPARAM lParam)
{
if (IS_POINTER_PRIMARY_WPARAM(wParam))
{
//TODO
}
return 0;
}
Есть ли способ позвонить OndeltaPos
от OnPointerDown
?
Я буду признателен за любую помощь.
Задача ещё не решена.
Других решений пока нет …