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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2009, 18:11   #1
Smitt64
 
Аватар для Smitt64
 
Регистрация: 27.02.2009
Сообщений: 5
Хорошо Оформление консольного окна.

В Visual c++ 6.0 есть 11 функций для работы с консольным окном(подробней смотри MSDN):
Код:
BOOL SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput)
BOOL SetConsoleCP(UINT wCodePageID)
BOOL SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine,  BOOL Add)
BOOL SetConsoleCursorInfo(HANDLE hConsoleOutput,CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo)
BOOL SetConsoleCursorPosition(HANDLE hConsoleOutput,COORD dwCursorPosition)
BOOL SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode)
BOOL SetConsoleOutputCP(UINT wCodePageID)
BOOL SetConsoleScreenBufferSize(HANDLE hConsoleOutput,COORD dwSize)
BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput,WORD wAttributes)
BOOL SetConsoleTitle(LPCTSTR lpConsoleTitle)
BOOL SetConsoleWindowInfo(HANDLE hConsoleOutput,BOOL bAbsolute,CONST SMALL_RECT *lpConsoleWindow)
---------------------------------------------------------------------------------------------------------
Эти функции находятся в
Код:
#include <windows.h>
Рассмотрим как выводить в окно консоли разноцветный текст в разных местах экрана:
Код:
void DrawColorString(char *szText, int X, int Y, WORD color)
{	
	HANDLE OutputH;//окно
	COORD position = {X, Y};//положение текста
	OutputH = GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(OutputH, color);//устанавливаем параметры отображения текста
	SetConsoleCursorPosition(OutputH, position);//устанавливаем курсор в точку (X,Y)
	printf("%s",szText);//выводим на экран текст
}
как кодируются цвета:
  • FOREGROUND_BLUE - цвет текста голубой
  • FOREGROUND_GREEN - цвет текста зеленый
  • FOREGROUND_RED - цвет текста красный
  • FOREGROUND_INTENSITY - сам по себе серый цвет, но с другими цветами дает яркий оттенок(FOREGROUND_RED|FOREGROUND_I NTENSITY - ярко красный)
  • BACKGROUND_BLUE - соответственно те же цвета только для фона
  • BACKGROUND_GREEN
  • BACKGROUND_RED
  • BACKGROUND_INTENSITY
При всевозможных вариантах смешивания могут получиться и другие цвета.
---------------------------------------------------------------------------------------------------------
Так же можно и поменять текст в заголовке окна.
Код:
SetConsoleTitle("My window.");
---------------------------------------------------------------------------------------------------------

Исходный код: ColorText.rar
Пожалуйста оставляйте отзывы.

Последний раз редактировалось Smitt64; 28.02.2009 в 19:56.
Smitt64 вне форума Ответить с цитированием
Старый 29.12.2010, 03:23   #2
dancer1
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 18
По умолчанию

Классная статья спасибо.
Только одно НО, ссылка на пример битая

Последний раз редактировалось dancer1; 29.12.2010 в 03:27.
dancer1 вне форума Ответить с цитированием
Старый 07.03.2011, 19:07   #3
SrgGld
Пользователь
 
Аватар для SrgGld
 
Регистрация: 23.10.2010
Сообщений: 17
По умолчанию

.............

Последний раз редактировалось SrgGld; 07.03.2011 в 19:32. Причина: пытался удалить сообщение
SrgGld вне форума Ответить с цитированием
Старый 11.03.2011, 16:14   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Намного интереснее все происходит под Линуксом -)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перехват консольного ввода\вывода Артем5555555 Win Api 14 28.10.2008 23:20
Поиск и копирование текста из консольного окна Mago Паскаль, Turbo Pascal, PascalABC.NET 8 25.07.2008 15:04
Как сделать чтобы дочерние окна в MDI-приложениях были вне главного окна??? dimonchuk Общие вопросы Delphi 1 11.08.2007 12:13
Перехват вывода консольного приложения Роман Радер Общие вопросы Delphi 0 12.02.2007 18:40