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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM