zoukankan      html  css  js  c++  java
  • 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 }

  • 相关阅读:
    SuSe Linux 10 企业服务器搭建双机集群配置实例
    升级你的Linux日志系统
    企业部署Linux应用将拥有更低的TCO
    用VXE保护Linux系统安全
    Leetcode-995 Minimum Number of K Consecutive Bit Flips(K 连续位的最小翻转次数)
    Leetcode-994 Rotting Oranges(腐烂的橘子)
    Leetcode-993 Cousins in Binary Tree(二叉树的堂兄弟节点)
    Leetcode-552 Student Attendance Record II(学生出勤记录 II)
    Leetcode-213 House Robber II(打家劫舍 II)
    Leetcode-312 Burst Balloons(戳气球)
  • 原文地址:https://www.cnblogs.com/JZQT/p/3802435.html
Copyright © 2011-2022 走看看