Простой пример менюшки:
1. Создадим новый проект см.:
https://i.ibb.co/6BwS7qz/bcpp45-menu1-20-40-08-10-2021-min.jpg

2. Напишим такой код main.cpp:

Код:
#include <conio.h>
#include <cstring.h>
#include <graphics.h>
#include <bios.h>

#define MAX_ITEMS  20        // Максимальное количество менюшек
#define IS_SELECTED	1 // Выделена ли менюшка
#define LEFT    19200  // Нажатие клавиши влево
#define RIGHT    19712 // Нажатие клавиши вправо

// Структура меню, item - текстовка менюшки, x - позиция по координате X, is_selected - выбрана ли менюшка
typedef struct {
  string item;                             // текстовка менюшки
  int x;                                     // позиция по координате x
  unsigned short int is_selected; // выбрана ли менюшка
} MENU_ITEM;

MENU_ITEM items[MAX_ITEMS]; // Инициализация менюшек
int count = 0; // Инициализация макс менюшек


// Функция для добавления менюшки
void add_item(int x, string item) {
  items[count].x = x;
  items[count].item = item;
  items[count].is_selected = !IS_SELECTED;
  count++;
}

// Функция возвращает информвцию о определённой менюшки
MENU_ITEM get_item(int index) {
  return items[index];
}

// Функция возвращает максимальное количество менюшек
int get_items_count() {
  return count;
}

// Функция устанавливает выбрата менюшка или нет
void set_selected_item(int index, unsigned int short value) {
  for(int i=0; i<get_items_count(); i++)
	 items[i].is_selected = !IS_SELECTED;

  items[index].is_selected = value;
}

// Функция очищает меню
void clean_menubar() {
  MENU_ITEM itm;
  setcolor(BLUE);
  setfillstyle(SOLID_FILL, BLUE);
  rectangle(0, 0, getmaxx(), 15);
  floodfill(2, 2, BLUE);
  for(int i=0; i<get_items_count(); i++) {
	 itm = get_item(i);
	 outtextxy(itm.x, 5, itm.item.c_str());
  }
}

// Функция рисует меню
void draw_menu() {
  MENU_ITEM itm;
  for(int i=0; i<get_items_count(); i++) {
	 itm = get_item(i);
	 if(itm.is_selected != IS_SELECTED)
    setcolor(RED);
	 else
    setcolor(YELLOW);

	 outtextxy(itm.x, 5, itm.item.c_str());
  }
}

int main(void) {
  int state = 0;
  int selected_item = 0;
  int GraphDriver = DETECT;
  int GraphMode;
  int ErrorCode;
  int key = 0;

  // Инициализация 640x480, в случае какой-нибудь ошибки выходит
  initgraph(&GraphDriver, &GraphMode, "");
  ErrorCode = graphresult();
  if(ErrorCode != grOk){
	 exit(1);
  }

  add_item(10, "File"); // Менюшка File
  add_item(80, "Project"); // Менюшка Project
  add_item(180, "Help"); // Менюшка Help

  // Цикл обработчика нажатия клавиш, чтобы перемещать выделенное меню
  while(!state) {
	 while(!kbhit()) {}
	 key = bioskey(0);
	 clean_menubar();
    switch(key) {
      case LEFT:
    	 if(selected_item > 0)
        selected_item--;
      break;
      case RIGHT:
    	 if(selected_item < get_items_count()-1)
        selected_item++;
      break;
      default:
    	 state = !state;
      break;
	 }
	 set_selected_item(selected_item, IS_SELECTED);
	 draw_menu();
  }
  closegraph();
  return 0;
}

Результат:
https://i.ibb.co/k2Y4bdv/bcpp45-menu2-20-43-08-10-2021-min.jpg