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


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

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

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


     
    1. typedef struct _CONSOLE_CURSOR_INFO     //光标信息结构体  
    2. {  
    3.     DWORD dwSize;       //光标尺寸大小,范围是1~100  
    4.     BOOL  bVisible;     //表示光标是否可见,true表示可见  
    5. } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;  
    6.   
    7. BOOL GetConsoleCursorInfo(      //获得光标信息  
    8.     HANDLE hConsoleOutput,      //句柄  
    9.     PCONSOLE_CURSOR_INFO lpConsoleCursorInfo    //光标信息,注意这是个指针类型  
    10. );  
    11.   
    12. BOOL SetConsoleCursorInfo(      //设置光标信息  
    13.     HANDLE hConsoleOutput,      //句柄  
    14.     const CONSOLE_CURSOR_INFO *lpConsoleCursorInfo  //光标信息  
    15. );  

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


    1. #include <stdio.h>  
    2. #include <Windows.h>  
    3. #include <conio.h>  
    4. #include <stdlib.h>  
    5.   
    6. int main()  
    7. {  
    8.     HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);    //获得标准输出设备句柄  
    9.     CONSOLE_CURSOR_INFO cci;        //定义光标信息结构体  
    10.     GetConsoleCursorInfo(handle_out, &cci);     //获得当前光标信息  
    11.     _getch();  
    12.     cci.dwSize = 1;     //设置光标尺寸为1  
    13.     SetConsoleCursorInfo(handle_out, &cci);  
    14.     _getch();  
    15.     cci.dwSize = 50;    //设置光标尺寸为50  
    16.     SetConsoleCursorInfo(handle_out, &cci);  
    17.     _getch();  
    18.     cci.dwSize = 100;   //设置光标尺寸为100  
    19.     SetConsoleCursorInfo(handle_out, &cci);  
    20.     _getch();  
    21.     cci.bVisible = false;       //设置光标为不可见  
    22.     SetConsoleCursorInfo(handle_out, &cci);  
    23.     _getch();  
    24.     return 0;  
    25. }  

  • 相关阅读:
    用addOnGlobalLayoutListener获取View的宽高
    用addOnGlobalLayoutListener获取View的宽高
    用addOnGlobalLayoutListener获取View的宽高
    ElasticSearch封装查询、多条件查询、模糊查询工具类
    java操作ElasticSearch(es)进行增删查改操作
    如何构建尽可能小的容器镜像?
    perl 合并日志处理+并发管理器
    NoSQL还是SQL?这一篇讲清楚
    perl 跨行匹配 /s
    perl 改变换行符 合并日志
  • 原文地址:https://www.cnblogs.com/lxl0928/p/3800764.html
Copyright © 2020-2023  润新知