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的值为下面几种类型的一种:
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是用来设置颜色的参数:
也就是说SetConsoleTextAttribute函数是靠一个字节的低四来控制前景色,高四位来控制背景色。
Check keyboard hit
kbhit是一个函数,可以用来检查当前是否有键盘输入。
getch() 在执行时,检测按下什么键,如果不按键该函数不返回;是阻塞函数。
用 法:int kbhit(void);
包含头文件: include <conio.h>
#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 | 标准输出的句柄 |
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 |
Check keyboard hit
kbhit是一个函数,可以用来检查当前是否有键盘输入。
getch() 在执行时,检测按下什么键,如果不按键该函数不返回;是阻塞函数。
用 法:int kbhit(void);
包含头文件: include <conio.h>
相关文章推荐
- 关于C和C++一些大神们的讨论
- 关于C和C++一些大神们的讨论
- 关于C++中类与对象的一些讨论
- 关于C/C++的一些讨论
- 关于学习C++的一些小心得(2)
- 2017-09-22 关于C++获取网页的一些心得
- 请教新设计的数据库组建, 关于跨数据库的一点心得, 大家一起讨论一下(二)
- 一起谈.NET技术,关于CLR内存管理一些深层次的讨论 [上篇]
- 请教新设计的数据库组建, 关于跨数据库的一点心得, 大家一起讨论一下
- 关于学习C++的一些小心得⑴
- More Effective C++议题【六】:关于自增、自减操作符的一些讨论
- 一起谈.NET技术,关于CLR内存管理一些深层次的讨论 [下篇]
- OGRE·Irrlicht·初印象·及与古老意念关于不变性和可变性程度的讨论的一些总结
- 关于windows编程的一些心得 选择自 forpku 的 Blog
- 关于使用Java开发工具的一些心得
- 通过web服务传递复杂类型数据的一些尝试和心得(欢迎讨论)
- 几个delphi书中没提过的数据库问题与我的疑惑和心得(一起讨论)
- 关于C++中函数指针的使用(包含对typedef用法的讨论)
- 关于何种情况下使用DataGrid、DataList或Repeater的一些讨论
- 关于C++的一些细节[二:简单变量]