DragDetect(hwnd, pt) не подчиняется значениям CXDRAG и CYDRAG

У меня особенная проблема, когда нормальный щелчок определяется как перетаскивание.

void MyClass::OnLButtonDown(UINT nFlags, CPoint point)
{
   ParentClass::OnLButtonDown(nFlags, point);
   if (!HandleDrag(point))
      HandleClick(point);
}

bool MyClass::HandleDrag(const CPoint& pos)
{
   //debug code - start
   //retrieves correct value here, which was set
   int cxDrag = GetSystemMetrics(SM_CXDRAG);
   int cyDrag = GetSystemMetrics(SM_CYDRAG);
   // debug code - end

   if (DragDetect(pos) && !IsDragging())
   {
      StartDragging();
      return true;
   }
   return false;
}

Значение по умолчанию было 4 для перетаскивания Cx и Cy. Несмотря на то, что я установил более высокие значения для Drag Rect, используя приведенный ниже вызов в конструкторе моего класса

SystemParametersInfo(SPI_SETDRAGWIDTH, 10, NULL, SPIF_SENDCHANGE);
SystemParametersInfo(SPI_SETDRAGHEIGHT, 10, NULL, SPIF_SENDCHANGE);

Windows по-прежнему возвращает True для DragDetect() даже при перетаскивании пикселей. Кто-нибудь знает, что я здесь делаю не так?

0 ответов

Другие вопросы по тегам