现在的位置: 首页 > 综合 > 正文

C语言控制台窗口图形界面编程(六):光标操作

2018年04月21日 ⁄ 综合 ⁄ 共 1181字 ⁄ 字号 评论关闭

       控制台窗口的光标的位置反映的是当前文本输入的插入位置,通过Windows API函数我们可以随意更改光标的位置,下面介绍这个控制光标位置的API函数,如下:

BOOL SetConsoleCursorPosition(  //设置光标位置
    HANDLE hConsoleOutput,      //句柄
    COORD dwCursorPosition      //坐标
);      //若函数调用成功则返回非0值


       不仅仅是光标的位置,光标的信息我们也可以通过一些API函数来设置,下面介绍光标信息结构体已经获得和设置光标信息的API函数,如下:

typedef struct _CONSOLE_CURSOR_INFO     //光标信息结构体
{
    DWORD dwSize;       //光标尺寸大小,范围是1~100
    BOOL  bVisible;     //表示光标是否可见,true表示可见
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;

BOOL GetConsoleCursorInfo(      //获得光标信息
    HANDLE hConsoleOutput,      //句柄
    PCONSOLE_CURSOR_INFO lpConsoleCursorInfo    //光标信息,注意这是个指针类型
);

BOOL SetConsoleCursorInfo(      //设置光标信息
    HANDLE hConsoleOutput,      //句柄
    const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo  //光标信息
);

       下面的示例程序来演示以上函数的使用

#include <stdio.h>
#include <Windows.h>
#include <conio.h>
#include <stdlib.h>

int main()
{
    HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);    //获得标准输出设备句柄
    CONSOLE_CURSOR_INFO cci;        //定义光标信息结构体
    GetConsoleCursorInfo(handle_out, &cci);     //获得当前光标信息
    _getch();
    cci.dwSize = 1;     //设置光标尺寸为1
    SetConsoleCursorInfo(handle_out, &cci);
    _getch();
    cci.dwSize = 50;    //设置光标尺寸为50
    SetConsoleCursorInfo(handle_out, &cci);
    _getch();
    cci.dwSize = 100;   //设置光标尺寸为100
    SetConsoleCursorInfo(handle_out, &cci);
    _getch();
    cci.bVisible = false;       //设置光标为不可见
    SetConsoleCursorInfo(handle_out, &cci);
    _getch();
    return 0;
}

抱歉!评论已关闭.