21xrx.com
2024-09-20 01:11:25 Friday
登录
文章检索 我的文章 写文章
C++中如何设置颜色字体
2023-06-27 19:32:20 深夜i     --     --
C++ 颜色设置 字体设置

在C++编程中,为了让控制台输出的文字更加美观,我们可以通过设置控制台输出的颜色和字体来实现。下面就是一些关于C++中如何设置颜色字体的方法。

1. 设置控制台文字颜色

我们可以使用Windows API函数SetConsoleTextAttribute()来设置控制台文字颜色。这个函数的原型如下:


BOOL SetConsoleTextAttribute(

 HANDLE hConsoleOutput,

 WORD  wAttributes

);

其中,hConsoleOutput表示的是控制台输出的句柄,wAttributes表示的是文字的属性值。属性值是由两个字节组成的,其中高四位表示背景颜色,低四位表示前景(文字)颜色。

例如,如果要将控制台的文字设置为红色:


#include <windows.h>

#include <iostream>

using namespace std;

int main() {

HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hConsoleOutput, FOREGROUND_RED);

cout << "This is red text!" << endl;

return 0;

}

2. 设置控制台窗口颜色

我们可以使用Windows API函数SetConsoleWindowInfo()来设置控制台窗口的颜色。这个函数的原型如下:


BOOL WINAPI SetConsoleWindowInfo(

 _In_ HANDLE hConsoleOutput,

 _In_ BOOL  bAbsolute,

 _In_ CONST SMALL_RECT *lpConsoleWindow

);

其中,hConsoleOutput表示的是控制台输出的句柄,bAbsolute表示的是窗口的坐标是否是以屏幕为基准,lpConsoleWindow表示的是窗口的大小和坐标。

例如,如果要将控制台窗口的颜色设置为蓝色:


#include <windows.h>

int main() {

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

SMALL_RECT windowSize = 50;

SetConsoleWindowInfo(hConsole, TRUE, &windowSize);

SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | BACKGROUND_BLUE);

return 0;

}

3. 设置控制台字体

我们可以使用Windows API函数GetCurrentConsoleFont()获得控制台的当前字体信息,然后使用SetCurrentConsoleFontEx()函数来设置控制台字体。这个函数的原型如下:


BOOL WINAPI SetCurrentConsoleFontEx(

 _In_  HANDLE        hConsoleOutput,

 _In_  BOOL         bMaximumWindow,

 _Inout_ PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx

);

例如,如果要将控制台字体设置为微软雅黑:


#include <windows.h>

int main() {

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

CONSOLE_FONT_INFOEX cfi = {sizeof(cfi)};

cfi.dwFontSize.Y = 16;

cfi.FontWeight = FW_NORMAL;

wcscpy_s(cfi.FaceName, _countof(cfi.FaceName), L"Microsoft YaHei");

SetCurrentConsoleFontEx(hConsole, false, &cfi);

return 0;

}

在本文中,我们介绍了三种在C++中设置颜色字体的方法,以及相关的Windows API函数。这些方法可以帮助我们实现更加美观的控制台输出效果。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复