2011-11-27 11 views
3

テキストまたは背景色(MS Visual studio)を変更するC++関数はどれですか?たとえば、cout<<"This text";「このテキスト」赤色を作成する方法。Windowsコンソールアプリケーションでテキストまたは背景色を変更する方法

+8

どのようなテキストですか?どのような背景?より具体的にしてください。 –

+0

cout << "このテキスト"; – Wizard

+1

コンソールアプリケーションを扱っていますか? – Bart

答えて

8

カラーはC++のものではなく、端末のプロパティです。

#define ANSI_COLOR_RED  "\x1b[31m" 
#define ANSI_COLOR_GREEN "\x1b[32m" 
#define ANSI_COLOR_YELLOW "\x1b[33m" 
#define ANSI_COLOR_BLUE "\x1b[34m" 
#define ANSI_COLOR_MAGENTA "\x1b[35m" 
#define ANSI_COLOR_CYAN "\x1b[36m" 

#define ANSI_COLOR_BRIGHT "\x1b[1m" 
#define ANSI_COLOR_RESET "\x1b[0m" 


std::cout << ANSI_COLOR_RED "Hello World\n" ANSI_COLOR_RESET; 
:(あなたが cmd.exe /kansiconとシェルを呼び出す場合、あなたの config.sys、以降のWindowsに DEVICE=C:\DOS\ansi.sysを追加する場合、例えば任意のLinuxターミナル、またはDOSやWindows NT)端末がANSIを話す場合は、次のギミックを試すことができます

ウィキペディアはlist of ANSI escape sequencesです。

+1

Windowsコマンドプロンプトで動作するでしょうか? – Ferruccio

+2

質問はWINDOWS用でした。 Windows。 – Kyberias

+1

@Kyberias:Windows NTでは、DOSのように[load ansi.sys](https://support.microsoft.com/kb/101875)を実行します。または、 'cmd.exe/ –

11

あなたは、Win32を使用して、コンソールアプリケーションのための色を変更して、ここでどのように上の例だことができます。

#include "stdafx.h" 
#include <Windows.h> 
#include <iostream> 

using namespace std; 

int main(void) 
{ 
    HANDLE hStdout = GetStdHandle(STD_OUTPUT_HANDLE); 
    if (hStdout == INVALID_HANDLE_VALUE) 
    { 
     cout << "Error while getting input handle" << endl; 
     return EXIT_FAILURE; 
    } 
    //sets the color to intense red on blue background 
    SetConsoleTextAttribute(hStdout, FOREGROUND_RED | BACKGROUND_BLUE | FOREGROUND_INTENSITY); 

    cout << "This is intense red text on blue background" << endl; 
    //reverting back to the normal color 
    SetConsoleTextAttribute(hStdout, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); 

    return EXIT_SUCCESS; 
} 

SetConsoleTextAttribute関数のMSDNドキュメントを見て、Console Screen Buffersのため詳しくは。

Win32を使用するコンソールアプリケーションのより完全な例はhereです。

+2

いい答えを+1してください...しかし、私は#include "stdafx.h"コードブロックの上にこのコードを実行するコメントをする必要があります。 – nKandel

関連する問題