您的位置:首页 > 编程语言 > C语言/C++

C++中关于console光标的一些小心得,供新手们一起讨论。轻喷。我是个小菜鸡

2016-11-03 00:00 211 查看
摘要: 光标

#include <windows.h>

Cursor position struct

COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标。其定义为:

typedef struct _COORD {

SHORT X; // horizontal coordinate

SHORT Y; // vertical coordinate

} COORD;

Cursor attribute(光标的属性)

typedef struct _CONSOLE_CURSOR_INFO、

{

DWORD dwSize;// 光标百分比厚度(1~100)

BOOL bVisible;// 是否可见

} CONSOLE_CURSOR_INFO

Get std handle

GetStdHandle是一个Windows API函数。它用于从一个特定的标准设备(标准输入、标准输出或标准错误)中取得一个句柄。

GetStdHandle()返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。

函数形式:

HANDLE GetStdHandle( DWORD nStdHandle );

其参数nStdHandle的值为下面几种类型的一种:


含义
STD_INPUT_HANDLE
标准输入的句柄
STD_OUTPUT_HANDLE
标准输出的句柄
set cursor position

SetConsoleCursorPosition是API中定位光标位置的函数。

实例:

/*用于得到标准输出的语柄,通过操作语柄对光标进行设置;*/

HANDLE hOut;

COORD pos={15,5};

hOut=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(hOut,pos);

Get console cursor information

GetConsoleCursorInfo 函数

检索有关指定的控制台屏幕缓冲区的光标的可见性和大小信息。

语法

BOOL WINAPI GetConsoleCursorInfo(
  __in HANDLE hConsoleOutput,
  __out PCONSOLE_CURSOR_INFO lpConsoleCursorInfo
  );

hConsoleOutput

控制台屏幕缓冲区的句柄。该句柄必须具有的 GENERIC_READ 的访问权限。

lpConsoleCursorInfo

指向接收有关该控制台的光标的信息的CONSOLE_CURSOR_INFO结构的指针。

Set console color

SetConsoleTextAttribute是API设置控制台窗口字体颜色和背景色的函数。

BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

wAttributes是用来设置颜色的参数:

wAttributes
颜色
对应的值
FOREGROUND_BLUE
字体颜色:蓝
1
FOREGROUND_GREEN
字体颜色:绿
2
FOREGROUND_RED
字体颜色:红
4
FOREGROUND_INTENSITY
前景色高亮显示
8
BACKGROUND_BLUE
背景颜色:蓝
16
BACKGROUND_GREEN
背景颜色:绿
32
BACKGROUND_RED
背景颜色:红
64
BACKGROUND_INTENSITY
背景色高亮显示
128
也就是说SetConsoleTextAttribute函数是靠一个字节的低四来控制前景色,高四位来控制背景色。

Check keyboard hit

kbhit是一个函数,可以用来检查当前是否有键盘输入。

getch() 在执行时,检测按下什么键,如果不按键该函数不返回;是阻塞函数。

用 法:int kbhit(void);

包含头文件: include <conio.h>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ Console 光标