Поскольку данный класс является промежуточным,
Поскольку данный класс является промежуточным, то его объекты на сообщения никак не реагируют.
// Класс "Видимая точка" ---------------------------
class PT : public OBJ
{ char sym; // Отображаемый символ
int x,y; // Координаты точки
public:
PT(char); // Конструктор
~PT(); // Деструктор
void on(); // Высветить
void off(); // Погасить
void up(); // Перемещения точки
void down();
void left();
void right();
void OnPlace(int,int); // Позиционирование точки
void HandleEvent(MS *); // Обработка сообщений
};
//--------------------------------------------------------------
PT::PT(char c) { sym = c; x = 0; y = 0; }
void PT::off() { gotoxy(x+1,y+1); putch(' '); }
void PT::on() { gotoxy(x+1,y+1); putch(sym); }
void PT::OnPlace(int xx, int yy) {off(); x = xx; y = yy; on(); }
void PT::left() { off(); if (x > 0) x--; on(); }
void PT::right() { off(); if (x < 79) x++; on(); }
void PT::up() { off(); if (y > 0) y--; on(); }
void PT::down() { off(); if (y < 24) y++; on(); }
PT::~PT() {off(); }
void PT::HandleEvent(MS *pm) {}
Курсор - это " видимая точка" , которая управляется с клавиатуры, поэтому этот объект выделяет сообщения от клавиатуры с соответствующими кодами и вызывает для них методы перемещения из класса " видимой точки" .
// Класс " Курсор - управляемый с клавиатуры"
class MOUSE : public PT
{ public:
void HandleEvent(MS *);
MOUSE();
~MOUSE();
};
//--------------------------------------------------------------
MOUSE::MOUSE() : PT('#') // Конструктор - сконструировать
{ OnPlace(40,12); } // точку " #" и установить ее на 40,12
void MOUSE::HandleEvent(MS *pm)
{
switch (pm->code)
{ // Реакция курсора на сообщения от клавиатуры
case ms_KEYB:
switch(pm->x)
{
case '8': up(); pm->clear(); break;
case '2': down(); pm->clear(); break;
case '4': left(); pm->clear(); break;
case '6': down(); pm->clear(); break;
case '0': pm->clear(); SendEvent(ms_KILL,0,0,(void *)(OBJ *)this); break;
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий