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

#include

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()返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。

函数形式:

HANDLEGetStdHandle( DWORDnStdHandle );

其参数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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值