基于链表的代码雨

目录

控制台函数GetStdHandle(获取控制台句柄)光标相关SetConsoleCursorPositionCOORDSetConsoleCursorInfoCONSOLE_CURSOR_INFOSetConsoleTextAttribute隐藏控制台光标设置输出位置

控制台函数

控制台相关函数API

https://docs.microsoft.com/en-us/windows/console/console-functions

GetStdHandle(获取控制台句柄)

检索指定标准设备(标准输入,标准输出或标准错误)的句柄。

HANDLE WINAPI GetStdHandle(
  _In_ DWORD nStdHandle
);

nStdHandle [输入] :

STD_INPUT_HANDLE 标准输入

STD_OUTPUT_HANDLE 标准输出

STD_ERROR_HANDLE 标准错误

光标相关

SetConsoleCursorPosition

设置光标在指定控制台屏幕缓冲区中的位置

BOOL WINAPI SetConsoleCursorPosition(
  _In_ HANDLE hConsoleOutput,
  _In_ COORD  dwCursorPosition
);

hConsoleOutput [输入] :控制台屏幕缓冲区的句柄,通过GetStdHandle获取

dwCursorPosition [in] :一个COORD结构,以字符为单位指定新的光标位置。坐标是屏幕缓冲区字符单元格的列和行。

COORD
typedef struct _COORD {
  SHORT X;
  SHORT Y;
} COORD, *PCOORD;

就是一个二维坐标点

SetConsoleCursorInfo

为指定的控制台屏幕缓冲区设置光标的大小和可见性。

BOOL WINAPI SetConsoleCursorInfo(
  _In_       HANDLE              hConsoleOutput,
  _In_ const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo
);

hConsoleOutput [输入] :控制台屏幕缓冲区的句柄,通过GetStdHandle获取

lpConsoleCursorInfo [in] :指向CONSOLE_CURSOR_INFO结构的指针

CONSOLE_CURSOR_INFO

包含有关控制台光标的信息。

typedef struct _CONSOLE_CURSOR_INFO {
  DWORD dwSize;
  BOOL  bVisible;
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;

dwSize:光标填充的字符单元格的百分比。此值在1到100之间。

注意windows控制台dwSize值默认为1,Linux一般为100

bVisible:光标的可见性。如果光标可见,则此成员为TRUE

SetConsoleTextAttribute

写入控制台屏幕缓冲区的字符的属性,控制

BOOL WINAPI SetConsoleTextAttribute(
  _In_ HANDLE hConsoleOutput,
  _In_ WORD   wAttributes
);

hConsoleOutput [输入] :控制台屏幕缓冲区的句柄,通过GetStdHandle获取

wAttributes [IN] :字符属性

字符属性可以分为两类:颜色和DBCS。

设置文字颜色:

FOREGROUND_BLUE 蓝色

FOREGROUND_GREEN 绿色

……

详情:https://docs.microsoft.com/en-us/windows/console/console-screen-buffers#_win32_font_attributes
隐藏控制台光标
CONSOLE_CURSOR_INFO cciCursor;    //控制台光标的信息
HANDLE hout;    //句柄
hout = GetStdHandle(STD_OUTPUT_HANDLE);    //获取控制台标准输入句柄
if (GetConsoleCursorInfo(hout, &cciCursor))//获取控制台屏幕缓冲区光标的大小和可见性
{
    //设置光标不可见
    cciCursor.bVisible = false;
    SetConsoleCursorInfo(hout, &cciCursor);
}
设置输出位置
void gotoxy(int x, int y)
{
    HANDLE hout;
    COORD pos;
    pos.X = x;
    pos.Y = y;
    hout = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hout, pos);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值