Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.10.2011, 18:57   #1
IGOR199304
Пользователь
 
Регистрация: 06.10.2011
Сообщений: 11
Радость С++ Графика

Вот у меня есть программа с меню. Писал в Dev c++. Помогите поменять цвет текста и фона в меню
Код:
#include <iostream>
#include <locale>
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <graphics.h>
using namespace std;

void produkcia();
void info();
void zakaz();
void pechuvo();
void marmelad();
void tort();

 
int main()
{
    




system("cls");

bool flag = true;

do
{
int menu;

   
   
   cout<<"+******************************************************************+"<<endl;
   cout<<"|                       Êîíäèòåðñêàÿ ôèðìà                         |"<<endl;
   cout<<"|                                                                  |"<<endl;
   cout<<"+*************************** Ìåíþ *********************************+"<<endl;
   cout<<"|                    1.Êàòàëîã ïðîäóêöèè.                          |"<<endl;
   cout<<"|                    2.Êîíòàêòíàÿ èíôîðìàöèÿ.                      |"<<endl;
   cout<<"|                    3.Çàêàçàòü òîâàð.                             |"<<endl;
   cout<<"|                    0.Âûõîä.                                      |"<<endl;
   cout<<"+******************************************************************+"<<endl;
   cout<<"|                    Âàø âûáîð:                                    |"<<endl;
   cout<<"+******************************************************************+"<<endl;
   cin>>menu;

switch (menu)
{
case 1: produkcia(); 
        break;
case 2: info(); 
        break;
case 3: 
      {
      bool flag = true;
      do
      {
     
       fflush(stdin);
       cin.get();
       system("cls");
              

      
      char nazva[20];
      int kilk;
      float cina;
      float vaga;
      float cin_kg;
      
      printf("\n+******************************************************************+");
      printf("\nÂâåäèòå íàçâàíèå çàêàçûâàåìîãî ïðîäóêòà ");
      printf("\n");
      scanf("%s",&nazva);
      printf("\n+******************************************************************+");
      printf("\nÂâåäèòå êîëè÷åñòâî(øò)%s");
      printf("\n");
      scanf("%d",&kilk);
      printf("\n+******************************************************************+");
      printf("\nÂâåäèòå âåñ ");
      printf("\n");
      scanf("%f",&vaga);
      printf("\n+******************************************************************+");
      printf("\nÂâåäèòå öåíó çà êèëîãðàì ");
      printf("\n");
      scanf("%f",&cin_kg);
      
      cina = vaga * cin_kg;
      printf("\n cina=%f",cina);
      printf("\n +******************************************************************+");
      printf("\n | Ââåäèòå 0 äëÿ âîçâðàùåíèå â ïðåäûäóùåå ìåíþ                      |");
      printf("\n +******************************************************************+");
      
      int menu;
      cin>>menu;
      switch(menu)
      {

case 0: main();break;
}}while (flag);}
      
      
      

        break;
case 0: return 0;
break;

default: cout << endl << " Îøèáêà ïðè âûáîðå ïóíêòà ìåíþ!";
}

fflush(stdin);
cin.get();
system("cls");
}
while (flag);
}

void produkcia()//Ìåíþ ïðîäóêöèÿ
{
system("cls");

bool flag = true;

do
{
int menu;
         
         cout<<"+******************************************************************+"<<endl;
         cout<<"|                         Êàòàëîã ïðîäóêöèè                        |"<<endl;
         cout<<"+******************************************************************+"<<endl;
         cout<<"|                         1.Ïå÷åíüå                                |"<<endl;
         cout<<"|                         2.Ìàðìåëàä                               |"<<endl;
         cout<<"|                         3.Òîðò                                   |"<<endl;
         cout<<"|+*****************************************************************+"<<endl;
         cout<<"|                         Âàø âûáîð:                               |"<<endl;
         cout<<"+******************************************************************+"<<endl;
         
         cin>>menu;

switch (menu)
{

case 1: pechuvo(); break;
case 2: marmelad(); break;
case 3: tort();break;
case 4: flag = false; break;
case 0: main();break;
default: cout << endl << " Îøèáêà ïðè âûáîðå ïóíêòà ìåíþ!";
}

fflush(stdin);
cin.get();
system("cls");
}
while (flag);
}
IGOR199304 вне форума Ответить с цитированием
Старый 08.01.2012, 21:51   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Я работал в GNU и это все работает попробуй может тоже получится
-------------------------
#include <Windows.h>
-------------------------
Без этого работать не будет.

Далее необходимо объявить и инициализировать графическую переменную:
-------------------------------------------------------------------
HANDLE <имя переменной> = GetStdHandle(STD_OUTPUT_HANDLE);
-------------------------------------------------------------------
Затем приступим к самим атрибутам текста то что ты и спрашивал.
Перед выводом текста пишешь команду:

SetConsoleTextAttribute(<имя графической переменной>, <параметры>);

В параметрах пишешь кокраз цвет фона: BACKGROUND_ЦВЕТ или код цвета например 0(черный);

Чтобы извенить цвет шрифта: FOREGROUND_ЦВЕТ;
RED, GREEN, BLUE, INTENSITY
Цвета можно смешивать путем сложения:
FOREGROUND_RED + FOREGROUND_INTENSITY; - ярко красный;

Пример:
#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
HANDLE H = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(H, FOREGROUND_RED + FOREGROUND_INTENSITY);
// Цвет шрифта ярко-красный
cout<<"Привет"<<endl;
SetConsoleTextAttribute(H, BACKGROUND_BLUE+BACKGROUND_INTENSIT Y+FOREGROUND_RED + FOREGROUND_INTENSITY);
// Цвет шрифта ярко-красный на ярко-синем фоне
cout<<"Привет";
return 0;
}
Попробуй скомпилировать и поймешь
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика Namyola Паскаль, Turbo Pascal, PascalABC.NET 0 27.05.2011 16:38
Графика Yelisey Паскаль, Turbo Pascal, PascalABC.NET 0 16.04.2011 07:56
графика загадочная Паскаль, Turbo Pascal, PascalABC.NET 1 23.07.2010 11:21
Графика cyber_NINJA Помощь студентам 1 07.07.2010 13:12