汇编语言控制台光标设置函数简述


Win32 API 提供了函数用于设置控制台应用光标的大小、可见度和屏幕位置。与这些函数相关的重要数据结构是 CONSOLE_CURSOR_INFO,其中包含了控制台光标的大小和可见度信息:

CONSOLE_CURSOR_INFO STRUCT
    dwSize DWORD ?
    bVisible DWORD ?
CONSOLE_CURSOR_INFO ENDS

dwSize 为光标填充的字符单元格的百分比(从 1 到 100)。如果光标可见,则 bVisible 等于 TRUE(1)。

1) GetConsoleCursorInfo 函数

函数 GetConsoleCursorInfo 返回控制台光标的大小和可见度。需向其传递指向结构 CONSOLE_CURSOR_INFO 的指针:

GetConsoleCursorInfo PROTO,
    hConsoleOutput:HANDLE,
    lpConsoleCursorInfo:PTR CONSOLE_CURSOR_INFO

默认情况下,光标大小为 25,这表示光标占据了 25% 的字符单元格。

2) SetConsoleCursorInfo 函数

函数 SetConsoleCursorInfo 设置光标的大小和可见度。需向其传递指向结构 CONSOLE_CURSOR_INFO 的指针:

SetConsoleCursorInfo PROTO,
    hConsoleOutput:HANDLE,
    lpConsoleCursorInfo:PTR CONSOLE_CURSOR_INFO

3) SetConsoleCursorPosition

函数 SetConsoleCursorPosition 设置光标的 X、Y 位置。向其传递一个 COORD 结构和控制台输岀句柄:

SetConsoleCursorPosition PROTO,
    hConsoleOutput:DWORD,    ;输入模式句柄
    dwCursorPosition:COORD    ;屏幕 X、Y 坐标