На шаге 2 мы внесем изменения в приложение, чтобы при щелчке любой кнопкой мыши строка с приветствием перемещалась на место щелчка На рис. 6.7 можно увидеть, что после щелчка кнопкой мыши строка действительно переместилась
Рис. 6.7. Перемещение текста по щелчку кнопкой
мыши (Шаг 2)
//SimpleForm.cpp - Шаг 2
// SimpleForm.срр - 2
// Эта версия отображает
приветствие, которое может быть перемещено
// щелчком кнопки мыши
fusing <mscorlib.dll>
fusing <System.dll>
Во время инициализации программа
связывает метод Forml_MouseDown с событием MouseDown (Кнопка
мыши нажата) Этот метод устанавливает
координаты текста, х и у, равными
координатам точки, в которой находился
указатель в момент щелчка Для того чтобы
понять роль метода Invalidate (Считать
недействительным), закомментируйте его и
снова скомпонуйте код Щелкните мышью, чтобы
перенести текст Что произойдет в
результате9 Приветствие останется на том же
месте Потом накройте окно приложения каким-либо
другим окном, а потом снова откройте его
Теперь вы увидите, что строка перемещена
Метод Invalidate (Считать
недействительным) определен в базовом
классе Control (Элемент управления) Существует
несколько переопределенных версий этого
метода Каждая из них заставляет считать
недействительной определенную область
управляющего элемента и посылает элементу
управления сообщение о перерисовывании
Метод, который не содержит параметров,
заставляет считать недействительным весь
управляющий элемент Для того чтобы
максимально уменьшить объем
перерисовывания, в более сложном
приложении можно ограничиться тем, что
недействительным будет считаться
прямоугольник