Система создает сообщение о двойном щелчке, когда пользователь в быстрой последовательности дважды щелкает по кнопке мыши. Когда пользователь щелкает по кнопке, система устанавливает прямоугольник, сосредоточенный вокруг острия курсора. Она также регистрирует и время в которое произошел щелчок. Когда пользователь щелкает по одной и той же кнопке второй раз, система выясняет, находится ли острие все еще внутри прямоугольника и вычисляет время, прошедшее с начала первого щелчка. Если острие все еще внутри прямоугольника и общее затраченное время не выходит за пределы величины блокировки по времени двойного щелчка, система создает сообщение двойного щелчка.
Прикладная программа может получить и установить величину блокировки по времени двойного щелчка, используя функцию GetDoubleClickTime и SetDoubleClickTime, соответственно. Альтернативно, приложение может установить величину блокировки по времени двойного щелчка, используя флажок SPI_SETDOUBLECLICKTIME с функцией SystemParametersInfo. Оно может также установить и размер прямоугольника, который система использует, чтобы обнаруживать двойные щелчки, передавая флажки SPI_SETDOUBLECLKWIDTH и SPI_SETDOUBLECLKHEIGHT в функцию SystemParametersInfo.
Обратите внимание! на то, что, так или иначе, эти установочные параметры величины блокировки по времени двойного щелчка и прямоугольника воздействуют на все приложения. |
Определяемое программой окно, по умолчанию, не получает сообщения о двойном щелчке. Из-за дополнительных системных расходов, привлекаемых к участию в создании сообщений о двойном щелчке, эти сообщения создаются только для окон, принадлежащих классам, которые имеют стиль класса CS_DBLCLKS. Ваше приложение должно установить этот стиль при регистрации класса окна. Дополнительную информацию, см. в статье Классы окна.
Сообщение о двойном щелчке - всегда третье сообщение в серии из четырех сообщений. Первые два сообщения - это сообщения о нажатии и отпуске кнопки, созданные первым щелчком. Второй щелчок создает сообщение о двойном щелчке, сопровождаемое еще одним сообщением отпуска кнопки. Например, двойной щелчок по левой кнопке мыши генерирует нижеследующую последовательность сообщений:
Поскольку окно всегда получает сообщение о нажатии кнопки перед получением сообщения о двойном щелчке, приложение обычно использует сообщение о двойном щелчке, чтобы продлить выполнение задачи, которое оно начало в ходе сообщения о нажатии кнопки. Например, когда пользователь щелкает по цвету в цветовой палитре программы Microsoft Paint. Paint показывает на экране выбранный цвет рядом с палитрой. Когда пользователь щелкает два раза по цвету, Paint показывает на экране цвет и открывает диалоговое окно Редактирование цвета (Edit Colors).