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() даже при перетаскивании пикселей. Кто-нибудь знает, что я здесь делаю не так?