Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие визуального программирования.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.27 Mб
Скачать
      1. Элемент управления Timer

Таймер (Timer) не является визуальным элементом управления. Иногда при решении задач требуется создать процедуру, которая выполняется через определенные интервалы времени или запускается по истечении установленного интервала.  Создание такой процедуры возможно благодаря компоненту Timer.  

Таймер имеет не так много свойств. Два свойства, которые наиболее важны Enabled и Interval.

Свойство Enabled, принимая значение истинно – (true) запускает таймер, и останавливает, когда это свойство имеет значение ложь –(false).

Свойство Interval задает время ожидания между тактами таймера или время активации события Tick.

Рассмотрим работу таймера на примере создания движущегося объекта на форме.

Для создания движущегося объекта подготовим файл с картинкой, например, машинкой, которая и будет двигаться на форме, и назовем его Car.png. После этого создадим новый проект с пустой формой. Поместим на форму элемент управления GroupBox1 для создания рамки, затем поместим на форму две кнопки, одну назовем Start, а другую Stop. Для вывода картинки на форму поместим два элемента управления PictureBox. Элемент PictureBox1 будет изображать дорогу. Для этого изменим цвет фона BackColor на коричневый. Элемент PictureBox2 будет изображать машинку. А в свойстве Image элемента PictureBox2 пропишем путь к файлу Car.png. Разместим элементы PictureBox таким образом, чтобы машинка стояла на дороге (рисунок 3.39).

Рисунок 3.39 – Форма с машинкой

Настроив внешний вид формы, перетащим элемент Timer на форму и займемся программированием. Обработчик события Click для кнопки Start будет включать таймер и задавать время ожидания между тактами таймера:

timer1->Enabled=true;

timer1->Interval=50;

А обработчик события Click для кнопки Stop будет выключать таймер:

timer1->Enabled=false;

Теперь, создадим обработчик события Tick для элемента timer1, который будет вызываться в каждый временной интервал.

private: System::Void timer1_Tick(System::Object^ sender,

System::EventArgs^ e) {

pictureBox2->Left= pictureBox2->Left-1;

}

Данный обработчик будет менять местоположение объекта PictureBox2 на форме, перемещая его влево.

Выполните построение решения и запустите проект на выполнение. Вы убедитесь, что при нажатии кнопки Start машинка начинает движение. Нажатие кнопки Stop приводит к ее остановке. Подобным образом можно перемещать объекты в любом направлении.

    1. Щелчок мыши и его обработка

Windows-приложение сейчас трудно представить без использования компьютерной мыши. Для управления выводом в рабочую область окна широко используется мышь. Visual Studio предоставляет большие возможности для обработки событий нажатия мыши. Разрабатываемые приложения могут обрабатывать следующие события мыши:

    1. MouseCaptureChanged - вызывается, когда элемент управления теряет или получает указатель мыши.

    2. MouseClick - обработка одинарного щелчка клавиши мыши.

    3. MouseDoubleClick - обработка двойного щелчка клавиши мыши.

    4. MouseDown - обработка нажатия какой - либо клавиши мыши.

    5. MouseEnter -вызывается при попадания указателя мыши в область формы.

    6. MouseHover - вызывается при зависании указателя мыши в окне формы.

    7. MouseLeave - вызывается при покидании курсора мыши области формы.

    8. MouseMove - вызывается при движении мыши в области формы.

    9. MouseUp - вызывается при опускании кнопки мыши.

Рассмотрим несколько примеров обработки событий мыши. Для этого создадим новое приложение. Поместим на форму надпись label1, в свойство Text которой поместим текст Изучаем действия мыши. На рисунке 3.40 приведен вид полученной формы.

Рисунок 3.40 – форма для изучения действия мыши

Зайдём в свойства формы, активируем колонку событий (иконка с молнией), отыщем строку "MouseDown" и выберем её двойным щелчком. При этом сгенерируется процедура обработки события Form1_MouseDown, в которой запрограммируем вывод текста в элемент управления label1. Аналогично создадим событие Form1_MouseUp (код программы приведем ниже).

private: System::Void Form1_MouseDown(System::Object^ sender,

System::Windows::Forms::MouseEventArgs^ e)

{

label1->Text="Я нажал кнопку мыши";

}

private: System::Void Form1_MouseUp(System::Object^ sender,

System::Windows::Forms::MouseEventArgs^ e)

{

label1->Text="Я отпустил кнопку мыши";

}

а) при нажатии кнопки мыши б) при отпускании кнопки мыши

Рисунок 3.41 – реакция приложения на действия мыши

Форма курсора мыши может устанавливаться как операционной системой, так и самим приложением.