30/09/2018, 19:49

Hỏi hàm color trong code block

ai cho e hỏi cái hàm để viết chữ có màu trong code block la gi vậy, e tìm mãi chả ra,

PhởCode viết 22:05 ngày 30/09/2018

Mình không biết ý bạn là tô màu trên màn hình editor của codeblock hay là màu trên màn hình console.
Nếu bạn muốn vẽ màu lên console thì có 2 cách

Cách 1 là dùng lệnh color của windows
Vd:

#include <iostream>
#include <stdlib.h>

int main()
{
    system("color a");
    std::cout << "Hello World";
}

Kết quả

Cách 2 là dùng thư viện windows.h, bạn tham khảo bài này https://vblongk53.wordpress.com/2012/12/28/phan-2-ghi-len-console/

Shine Cristiano viết 21:51 ngày 30/09/2018

thanks bạn nhá =)=)=)=)

Shine Cristiano viết 21:52 ngày 30/09/2018

bạn ơi làm màu cho từng dòng chữ, với màn hình là j vậy

PhởCode viết 21:52 ngày 30/09/2018

Dùng hàm SetConsoleTextAttribute() nhé bạn.

#include <iostream>
#include <windows.h>

int main()
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_INTENSITY);
    std::cout << "Hello World\n";
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_INTENSITY);
    std::cout << "Hello World\n";
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_INTENSITY);
    std::cout << "Hello World\n";
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY);
    std::cout << "Hello World\n";
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
    std::cout << "Hello World\n";
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY);
    std::cout << "Hello World\n";
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY);
    std::cout << "Hello World\n";
    return 0;
}

Hùng Trần viết 22:01 ngày 30/09/2018

Thay thế mầu cho cái nền đen đằng như thế nào vậy?

PhởCode viết 21:58 ngày 30/09/2018

tô màu nền thì hơi rắc rối một chút, windows không có hàm để làm việc này nên ở đây mình viết một hàm riêng, một kí tự trên console có 2 màu là màu chữ và màu nền, màu nền thì dùng mấy giá trị BACKGROUND_...
mình vẽ màu nền bằng cách ghi lên toàn bộ cửa sổ ký tự dấu cách có màu nền của riêng nó.
Mặc định thì cửa sổ console có kích thước là 80x25.

#include <iostream>
#include <windows.h>
void setBackgroundColor(int color)
{
    // lấy vị trí hiện tại của dấu nháy 
    CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &screen_buffer_info);
    COORD currentPos = {screen_buffer_info.dwCursorPosition.X,screen_buffer_info.dwCursorPosition.Y };

    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), color);
    for(int i = 0 ; i < 25 ; i++)
        for(int j = 0 ; j < 80 ; j++)
            std::cout << " ";
    // thiết lập lại vị trí của dấu nháy
    SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), currentPos);
}
int main()
{
    setBackgroundColor(BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_INTENSITY);
    std::cout << "Hello World";
    return 0;
}

Shine Cristiano viết 21:50 ngày 30/09/2018

thanks ban phocode nhiu

Bài liên quan
0