在 Windows 终端上更改 carret 的形状

Posted

技术标签:

【中文标题】在 Windows 终端上更改 carret 的形状【英文标题】:change carret's shape on windows terminal 【发布时间】:2021-10-13 19:47:49 【问题描述】:

我想将控制台应用程序的文本光标(插入符号)从 BLOCK(默认)设置为 _ 或 |。

我Remove blinking underscore on console / cmd prompt - 但它没有提到如何修改光标。 https://docs.microsoft.com/en-us/windows/console/setconsolecursorinfo?redirectedfrom=MSDN 上的文档对我来说并不重要。

【问题讨论】:

同样的样本有效。您只需更新dwSize 即可更改大小。 我可以把它改成一个梁,还是一定要像旧的文本模式 0x03 一样? 文档解释了您可以对插入符号大小执行哪些操作。 【参考方案1】:

由 Raymond Chen 推荐(不知道他是谁的人:https://devblogs.microsoft.com/oldnewthing/)

这是我用于块光标的:

        HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);

        CONSOLE_CURSOR_INFO cursorInfo;

        GetConsoleCursorInfo(out, &cursorInfo);
        cursorInfo.bVisible = true;
        cursorInfo.dwSize = 100;
        SetConsoleCursorInfo(out, &cursorInfo);

对于下划线光标:

        HANDLE out = GetStdHandle(STD_OUTPUT_HANDLE);

        CONSOLE_CURSOR_INFO cursorInfo;

        GetConsoleCursorInfo(out, &cursorInfo);
        cursorInfo.bVisible = true;
        cursorInfo.dwSize = 10;
        SetConsoleCursorInfo(out, &cursorInfo);

【讨论】:

以上是关于在 Windows 终端上更改 carret 的形状的主要内容,如果未能解决你的问题,请参考以下文章