C ++ CLI GUI Событие Handeling

Я работаю над C ++ CLI-приложением и испытываю трудности с событиями. Мне интересно, могу ли я запускать события, пока нажата кнопка мыши. Например, я хочу проверить, переместилась ли мышь к следующему квадрату, только если она нажата мышью. То есть, если они щелкают по квадрату 1, они должны удерживать этот щелчок и перемещать квадрат 2 и моя программа распознает это.

Я запустил несколько различных событий для мыши, в том числе событие «Щелчок», но ни нажатие кнопки ни мыши, ни ввод мыши, ни нажатие кнопки не запускаются. Событие MouseClick, которое делает то же самое. Я попытался использовать только событие mouseDown, но это не позволяет сработать другому событию mouseDown, вводу мыши или событию hover.

Кроме проверки положения мыши, я не знаю, что я могу сделать. Я бы не хотел проверять положение мыши.

Если у кого-то есть идеи, они будут очень благодарны.

2

Решение

Очевидно, вы захотите обратить внимание на событие MouseMove, чтобы вы могли видеть, как мышь перемещается в другой квадрат. Грубо говоря:

    void panel1_MouseMove(Object^ sender, MouseEventArgs^ e) {
if ((e->Button & System::Windows::Forms::MouseButtons::Left) ==
System::Windows::Forms::MouseButtons::Left) {
int square = MapPosToSquare(e->Location);
if (square != currentSquare) {
currentSquare = square;
OnSquareClicked(currentSquare);
}
}
}

Если эти «квадраты» на самом деле являются элементами управления, то у вас другая проблема. Вы должны установить для свойства элемента управления Capture значение false в обработчике события MouseDown, чтобы он не захватывал мышь.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector