То,что необходимо программисту... Море самой разнообразной информации по самым разным вопросам...
Главная Новости Delphi C&C++ Графы.. Web-design Математика Исходники Lisp&Prolog Ссылки
Класс отображения меню под Borland C++ 3.1
Скачать:
Класс BearListT
Класс BearStringT
Класс ChoiceT
Полный вариант проекта с примером использования класса и комментарием
Связь с нами:
Гостевая книга..
Media Studio.. io
Bear Corp.
Рейтинг ресурса:

Rambler's Top100
Rambler's Top100 Апорт Top 1000
Сайт разработан:
Дизайн: Media Sudio & Bear Corner, Inc.

Последнее обновление: 22.05.2001.



   В этой статье приводится обзор класса ChoiceT, предназначенного для манипулирования меню под ОС ДОС.

  Класс размещен в файлах Choice.h и Choice.cpp. Для компиляции требуются также класс BearStringT (be_str.h, be_str.cpp), манипулирующий текстовыми строками и шаблонный класс BearListT<BearStringT> (be_list.h), переопределенный в Choice.h как ListT. Эти классы также доступны на сайте в разделе Downloads. В ближайшее время будут доступны и их обзоры. На сайте доступен также архив с готовым проектом, демонстрирующим всевозможные аспекты применения класса ChoiceT.

   Декларация класса достаточно компактна:

typedef class ChoiceT{
ListT *List;
int Num,LastPos,Beg,Beg2, TextCol, ActBackCol, OldBackCol;
public:
ChoiceT(int ,...);
ChoiceT(ListT * inlist);
void SetAttr(int textCol, int actBackCol);
int Run(int);
~ChoiceT();
};

  Возможны два принципиальных подхода к использованию класса. Если количество пунктов в меню и их наименовани яизвестны заранее, то можно использовать конструкции вида

ChoiceT Menu1(3,"First","Second","Third"),
*Menu2=new ChoiceT(2,"Point1","Point2");

  В таких вызовах используется первая форма вызова конструктора класса с переменным числом параметров, причем первым параматром указывается число пунктов в формируемом меню.

  Если же возникает неоходимость построить меню во время работы программы, то необходимо сперва динамически построить список пунктов в виде экземпляра класса BearListT<BearStringT>, который для удобства работы переопределен как ListT в файле Choice.h. Затем при конструировании объекта меню надо передать ему сформированный список, чтобы задействовать вторую форму конструктора класса. Это выглядит примерно так:

ListT *TempList=new(ListT);
TempList->AddItemEnd(BearStringT("Point-1"));
TempList->AddItemEnd(BearStringT("Point-2"));
TempList->AddItemEnd(BearStringT("Point-3"));
NewMenu= new ChoiceT(TempList);

  Итак, меню построено. Теперь надо его отобразить. Возможны 3 вида отображения меню:

#define HorList 0 (пункты располагаются по горизонтали рядом друг с другом)
#define VerList 1 (пункты располагаются по вертикали друг под другом)
#define StrList 2 (пункты замещают друг друга, располагаясь на одном и том же месте)

  Для отображения вызывается функция int Run(int), в качестве параметра принимающая одну из вышеописанных констант. Возвращаемое значение - номер пункта меню, выбранного пользователем.

  Для того, чтобы класс при работе не портил общий интерфейс программы , в которую он встроен, есть возможность настроить используемые им цвета в соответствии с желанием пользователя. По умолчанию активный пункт меню подсвечивается синим цветом фона, а текст имеет красный цвет. Но Эти настройки можно изменить, вызвав функцию void SetAttr(int textCol, int actBackCol), где первый параметр - цвет текста, второй - цвет подсветки активного пункта меню.

  В любом случае выбора параметров отображения меню запоминает цвет фона, поверх которого оно отображается и при переключении между пунктами меню корректно восстанавливает фон, бывший там до активации пункта меню.(наверх)

©Bear Labs, Inc. 2001, All Rights Reserved.

 

 

Hosted by uCoz