Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

В 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 в 20:56.
Smitt64 вне форума   Ответить с цитированием
Старый 29.12.2010, 04:23   #2
dancer1
Пользователь
 
Регистрация: 27.12.2010
Сообщений: 18
Репутация: 10
По умолчанию

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

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

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

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

icq: 260063504
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


06:54.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.