Курсор становится диагональным, изменяют размер, когда форма выше и оставлена основного монитора

O (N) время, O (N) память

HT = Хэш-таблица

HT.clear () пробегаются через список для каждого объекта, который Вы видите

if(HT.Contains(item)) -> HT.Remove(item)
else
ht.add(item)

в конце, объект в HT является объектом, который Вы ищете.

Примечание (кредит @Jared Updike): Эта система найдет все Нечетные экземпляры объектов.

<час>

комментарий : Я не вижу, как люди могут проголосовать за решения, которые дают Вам работу NLogN. в котором вселенная - это "лучше"? Я еще более потрясен, Вы отметили принятый ответ s решение NLogN...

я действительно соглашаюсь однако что, если бы память требуется, чтобы быть постоянной, то NLogN был бы (до сих пор) лучшим решением.

5
задан Adam Hughes 1 October 2009 в 15:36
поделиться

1 ответ

Похоже, это ошибка в Form.WmNCHitTest. Я считаю, что способ определения координат x и y неверен (чтобы получить y, он делает HIWORD ((int) ((long) lParam)) , где в документации указано использовать GET_Y_LPARAM , который определяется как ((int) (short) HIWORD (lParam)) ).

Он использует этот метод, только если у вас включен размер ручки. Отключение ручки размера обходит этот код и заставляет форму работать правильно.

6
ответ дан 14 December 2019 в 13:41
поделиться