С для профессиональных программистов



         

Простая программа, использующая процедуру pulldown


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

/* процедура иерархического меню для текстового режима

и простая программа-пример */

#include "dos.h"

#include "stdlib.h"

#define ESC 27

void save_video(),restore_video();

void display_menu(),draw_border();

char far *vid_mem;

struct menu_frame

int startx,endx,starty,endy;

unsigned char *p;                /*    указатель на информацию экрана */

char **menu;                        /*    указатель на строки меню */

int border;                             /*    рамка включено/выключено */

int count;                               /*    число альтернатив */

int astive;                              /*    активно ли меню сейчас */

 frame[MAX_FRAME];

;

;

char *grape_type[]=

"Конкорд",

"кАнадский",

"Томпсон",

"кРасное пламя"

main()

/* во-первых создадим фреймы меню */

make_menu(1,color,"кжоз",4,9,28,BORDER);

int choice1,choice2,selection;

/* активизация окон по мере надобности */ while((choice1=pulldown(0)) != -1)

switch ( choice1 )

case 0 :  /* яблоко */

while((choice2=pulldown(1)) != -1)

if(choice2 ==0) selection=pulldown(2);/*красное яблоко */

restore_video(2);

restore_video(1);

break;

case 1 :

case 2 : goto_xy(1,0);

printf("неправильный выбор");

break;

case 3 : /* грейпфрут */

selection=pulldown(3);

restore_video(3);

break;

case 4 :

case 5 : goto_xy(1,0);

printf("неправильный выбор");

break;

restore_video(0);

int pulldown(num)

int vmode,choice;

vmode=video_mode();

if((vmode!=2) && (vmode!=3) && (vmode!=7))

printf(" должен быть 80 символьный текстовый режим");

exit(1);

/* присвоить соответствующий адрес видео памяти */

/* узнать активнсть окна */

if( frame[num].border) draw_worder(num);

return get_resp(num);  /* возвратить выбор */




Содержание  Назад  Вперед