Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FAQC++.doc
Скачиваний:
13
Добавлен:
10.02.2015
Размер:
1.55 Mб
Скачать

Как понять, какая клавиша на клавиатуре была нажата?

События клавиатуры работают подобно событиям мыши.

Событие KeyPress передает аргумент типа KeyPressEventArgs. Эта структура включает KeyChar, представляющий символ нажатой клавиши.

Создадим событие KeyPress и его обработчик:

// событие KeyPress

this->KeyPress += gcnew KeyPressEventHandler(this, &Form1::MyKeyPress);

// текст обработчика

private: Void MyKeyPress(Object^ sender, KeyPressEventArgs^ e) {

MessageBox::Show("Нажата буква " + e->KeyChar);

}

Рис 10. Окно с обработчиком нажатия клавиши клавиатуры.

Если необходима дополнительная информация о нажатой клавише, то больше подойдут события KeyDown или KeyUp с параметрами KeyEventArgs. Свойства KeyEventArgs включают признак одновременного состояния клавиш <Ctrl>, <Alt> или <Shift>. Свойство KeyCode возвращает значение типа перечисления Keys, идентифицирующее нажатую клавишу. В отличие от свойства KeyPressEventArgs::KeyChar, свойство KeyCode сообщает о каждой клавише клавиатуры, а не только о буквенно-цифровых клавишах. События клавиш поступают в следующем порядке:

1. KeyDown

2. KeyPress

3. KeyUp

Добавим событие и обработчик нажатия клавиши:

// событие KeyDown

this->KeyDown += gcnew KeyEventHandler(this, &Form1::MyKeyDown);

// текст обработчика

private: Void MyKeyDown(Object^ sender, KeyEventArgs^ e) {

String^ sKey="";

switch(e->KeyCode)

{

case Keys::Up:

sKey="Up"; break;

case Keys::Down:

sKey="Down"; break;

case Keys::Left:

sKey="Left"; break;

case Keys::Right:

sKey="Right"; break;

default:

sKey="Other";

}

MessageBox::Show("Нажата клавиша " + sKey);

}

Рис 11. Окно с обработчиком нажатия клавиши клавиатуры (клавиши «Вправо»).

Что такое перо (Pen)?

Перо (Pen) – это один из инструментов рисования в окне приложения. Перо применяется при рисовании линий и контуров фигур. Классы, с помощью которых производится рисование, в частности, класс Pen, определены в пространстве имен System::Drawing. При создании пера задают его цвет и толщину (в пикселях (точках)). Например, создание пера голубого цвета и толщиной 2:

Pen^ pen=gcnew Pen(Color::Aqua,2);

Подпространство имен System::Drawing::Drawing2D содержит дополнительно средства для задания особых стилей пера, например, пунктирного пера:

Pen^ pen=gcnew Pen(Color::Aqua,2);

pen->DashStyle = DashStyle::Dash;

или штрих-пунктирного пера:

Pen^ pen=gcnew Pen(Color::Aqua,2);

pen->DashStyle = DashStyle::DashDot;

или с заданием специального «наконечника» линий:

// начало линии – наконечник в виде ромба, конец линии - круг

Pen^ pen=gcnew Pen(Color::Aqua,5);

pen->StartCap=LineCap::DiamondAnchor;

pen->EndCap=LineCap::RoundAnchor;

А) Б) В)

Г)

Рис 12. Использование пера ( А – обычное перо, Б – «пунктир», В – «штрих-пунктир», Г – разные «наконечники»).

Можно воспользоваться «системными перьями», которые определены в перечислении Pens. Название перьев в перечислении определяются названием цвета пера, например,

gr->DrawLine(Pens::Red,10,10,100,100);.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]