Logo 
Search:

C++ Programming Articles

Submit Article
Home » Articles » C++ Programming » Computer GraphicsRSS Feeds

Program of displaying graphical menu and operate it using arrow keys

Posted By: Easy Tutor     Category: C++ Programming     Views: 8528

Write a program of displaying graphical menu and operate it using arrow keys.

Code for Program of displaying graphical menu and operate it using arrow keys in C++ Programming

#include<iostream.h>
#include<conio.h>
#include <dos.h>
#include<graphics.h>


//Menu Global Item#define pixTOrc(x) (8*(x-1))  //convert pixel into row and col format#define INC 5  //Increment Distance Between Menu Items#define ROW 15 //Row Value for Menu Item#define COL 8 //Column Value for Menu Item#define MAXITEM 4 //Total menu items// To display the Inventory Main menu options
typedef char option[15];
option mainMenu[]= {
  "NEW",
  "OPEN",
 "SAVE",
 "CLOSE"
};



// Function to displays all the menu prompt messages from the pointer array of option a[]void normalvideo(int x,int y,char *str)
{
    x=pixTOrc(x);
    y=pixTOrc(y);
    outtextxy(x,y,str);
}

// Function to move the cursor on the menu prompt with a reverse video colorvoid reversevideo(int x,int y,char *str)
{
    x=pixTOrc(x);
    y=pixTOrc(y);
    setcolor(YELLOW);  //Selected Item
    sound(400);
    delay(100);
    nosound();
    outtextxy(x,y,str);
    setcolor(WHITE); //Unselected Item
    sound(500);
    delay(100);
    nosound();
}


//Keep Track of which arrow key is pressedchar menu()
{
    settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);
    setcolor(WHITE);  //Initial Menu Item Colorint i,done;
    for(i = 1; i < MAXITEM; i++)
      normalvideo(COL, (i*INC)+ROW, mainMenu[i]);

    reversevideo(COL,ROW, mainMenu[0]);
    i = done = 0;
    do
    {
            /**Status Bar Logic**///Message will be displayed as status bar guide-line
            setfillstyle(SOLID_FILL,BLUE);
            settextstyle(SMALL_FONT,HORIZ_DIR,5);
            bar(pixTOrc(2),pixTOrc(52.5),pixTOrc(75),pixTOrc(55));
            setcolor(LIGHTCYAN);
            switch(i){
                case 0 : outtextxy(pixTOrc(5),pixTOrc(52.75),"New --> Create New file");
                     break;
                case 1 : outtextxy(pixTOrc(5),pixTOrc(52.75),"Open --> Open Existing file");
                     break;
                case 2 : outtextxy(pixTOrc(5),pixTOrc(52.75),"Save --> Save file");
                     break;
                case 4 : outtextxy(pixTOrc(5),pixTOrc(52.75),"Close the Program");
                     break;
            }
            /**status Bar ends**///Restore Orignal Color and Font Setting
             setcolor(WHITE);
            settextstyle(TRIPLEX_FONT,HORIZ_DIR,3);

        int key = getch();
        switch (key)
        {

            case 00:
                key = getch();
                switch (key)
                {
                    case 72:
                        normalvideo(COL, (i*INC)+ROW, mainMenu[i]);
                        i--;
                        if (i == -1)
                            i = MAXITEM-1;
                        reversevideo(COL,(i*INC)+ROW,mainMenu[i]);
                        break;
                    case 80:
                        normalvideo(COL, (i*INC)+ROW, mainMenu[i]);
                        i++;
                        if (i == MAXITEM)
                            i = 0;
                        reversevideo(COL, (i*INC)+ROW, mainMenu[i]);
                        break;
                }
                break;
            case 13:
                done = 1;
        }
    }
    while (!done);
    return(i+49);
}


//Advertise Screen will displayed to utilize empty screen area//It can be utilize for some effective...workvoid advertise(){
    setcolor(BLUE);
    outtextxy(pixTOrc(30),pixTOrc(20),"Syntax-Example.com");
    setcolor(YELLOW);
}


/* The function is used to display the main menu*///Actual code for all the menu utility resides in this//Function...void control_menu()
{
     char choice;
    do
    {
        choice = menu();
        switch (choice)
        {
           case'1':    //New
                setcolor(BLUE);
                outtextxy(pixTOrc(40),pixTOrc(15),"New");
                advertise();
                getch();
                setfillstyle(SOLID_FILL,LIGHTGRAY);
                bar(pixTOrc(28),pixTOrc(14),pixTOrc(75),pixTOrc(50));
                advertise();
                break;

           case'2':    //Open
                setcolor(BLUE);
                outtextxy(pixTOrc(40),pixTOrc(15),"Open");
                advertise();
                getch();
                setfillstyle(SOLID_FILL,LIGHTGRAY);
                bar(pixTOrc(28),pixTOrc(14),pixTOrc(75),pixTOrc(50));
                advertise();
                break;

           case'3':    //Save
                setcolor(BLUE);
                outtextxy(pixTOrc(40),pixTOrc(15),"Save");
                advertise();
                getch();
                setfillstyle(SOLID_FILL,LIGHTGRAY);
                bar(pixTOrc(28),pixTOrc(14),pixTOrc(75),pixTOrc(50));
                advertise();
                break;

           case'4':    //Modify the status of item in inventory
                setcolor(BLUE);
                outtextxy(pixTOrc(40),pixTOrc(15),"About Me");
                advertise();
                getch();
                setfillstyle(SOLID_FILL,LIGHTGRAY);
                bar(pixTOrc(28),pixTOrc(14),pixTOrc(75),pixTOrc(50));
                advertise();
                break;

           case'5':    //Close the program
                setcolor(BLUE);
                outtextxy(pixTOrc(40),pixTOrc(15),"CLOSE");
                advertise();
                delay(1000);
                setfillstyle(SOLID_FILL,LIGHTGRAY);
                bar(pixTOrc(28),pixTOrc(14),pixTOrc(75),pixTOrc(50));
                advertise();
                gotoout;
       }
      } while (choice != MAXITEM);
        out:
}



void main()
{
    int i,j;

    int gd=DETECT,gm=0;
    initgraph(&gd,&gm,"");

///code as space holder\\\\\
    setfillstyle(SOLID_FILL,LIGHTGRAY);
    bar(0,0,640,480);

    setcolor(DARKGRAY);
    rectangle(0,0,639,480);
    rectangle(1,1,638,479);
    setcolor(BLACK);
    rectangle(2,1,637,478);
    rectangle(3,1,636,477);

    settextstyle(TRIPLEX_FONT,HORIZ_DIR,4);
    setcolor(BLUE);
    outtextxy(pixTOrc(8),pixTOrc(2),"  MENU  -->>  (Simple Style) ");

    setfillstyle(HATCH_FILL,DARKGRAY);
    for(i=15,j=70;i<40||j>40;i++,j--){
        bar(pixTOrc(8),pixTOrc(7),pixTOrc(i),pixTOrc(7.5));
        delay(10);
        bar(pixTOrc(j),pixTOrc(7),pixTOrc(70),pixTOrc(7.5));
        delay(20);
    }

    bar(pixTOrc(7),pixTOrc(14),pixTOrc(25),pixTOrc(50));

///code as space holder\\\\\//Calling Menu
    control_menu();

    closegraph();
}
  
Share: 



Easy Tutor
Easy Tutor author of Program of displaying graphical menu and operate it using arrow keys is from United States. Easy Tutor says

Hello Friends,

I am Free Lance Tutor, who helped student in completing their homework.

I have 4 Years of hands on experience on helping student in completing their homework. I also guide them in doing their final year projects.

I have share many programs on this website for everyone to use freely, if you need further assistance, than please contact me on easytutor.2ya [at the rate] gmail [dot] com

I have special discount scheme for providing tutor services. I am providing tutor service to students from various contries, currently most of my students are from United States, India, Australia, Pakistan, Germany, UK and Canada.

I am also here to expand my technical network to receive more opportunity in my career, make friends to help them in resolving their technical problem, learn and share my knowledge, If you like to be my friend, Please send me friend request.

Thanks,
Happy Programming :)

 
View All Articles

Related Articles and Code:


 

Other Interesting Articles in C++ Programming:


 
Please enter your Comment

  • Comment should be atleast 30 Characters.
  • Please put code inside [Code] your code [/Code].

 
No Comment Found, Be the First to post comment!