Сообщение о двойном щелчке

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

Прикладная программа может получить и установить величину блокировки по времени двойного щелчка, используя функцию GetDoubleClickTime и SetDoubleClickTime, соответственно. Альтернативно, приложение может установить величину блокировки по времени двойного щелчка, используя флажок SPI_SETDOUBLECLICKTIME с функцией SystemParametersInfo. Оно может также установить и размер прямоугольника, который система использует, чтобы обнаруживать двойные щелчки, передавая  флажки  SPI_SETDOUBLECLKWIDTH и SPI_SETDOUBLECLKHEIGHT в функцию SystemParametersInfo

Обратите внимание! на то, что, так или иначе, эти установочные параметры величины блокировки по времени двойного щелчка и прямоугольника воздействуют на все приложения.

Определяемое программой окно, по умолчанию, не получает сообщения о двойном щелчке. Из-за дополнительных системных расходов, привлекаемых к участию в создании сообщений о двойном щелчке, эти сообщения создаются только для окон, принадлежащих классам, которые имеют стиль класса CS_DBLCLKS. Ваше приложение должно установить этот стиль при регистрации класса окна. Дополнительную информацию, см. в статье Классы окна.

Сообщение о двойном щелчке - всегда третье сообщение в серии из четырех сообщений. Первые два сообщения - это сообщения о нажатии и отпуске кнопки, созданные первым щелчком. Второй щелчок создает сообщение о двойном щелчке, сопровождаемое еще одним сообщением отпуска кнопки. Например, двойной щелчок по левой кнопке мыши генерирует нижеследующую последовательность сообщений:

  1. WM_LBUTTONDOWN
  2. WM_LBUTTONUP
  3. WM_LBUTTONDBLCLK
  4. WM_LBUTTONUP

Поскольку окно всегда получает сообщение о нажатии кнопки перед получением сообщения о двойном щелчке, приложение обычно использует сообщение о двойном щелчке, чтобы продлить выполнение задачи, которое оно начало в ходе сообщения о нажатии кнопки. Например, когда пользователь щелкает по цвету в цветовой палитре  программы Microsoft Paint. Paint показывает на экране выбранный цвет рядом с палитрой. Когда пользователь щелкает два раза по цвету, Paint  показывает на экране цвет и открывает диалоговое окно Редактирование цвета (Edit Colors).

Назад в оглавление
На главную страницу

Hosted by uCoz