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. }  

posted @ 2014-06-21 11:49  Time.Long  阅读(4198)  评论(0编辑  收藏  举报