控制台界面控制(八):光标设置

news/2024/7/5 18:35:07

本文为转载文档,源文档链接:http://blog.csdn.net/bnb45/article/details/8034641

 

 

光标的作用在于提醒使用者,你的输入将会在这个位置出现。目前对于光标的操作只有一个,移动光标,改变输出的位置。有时候光标在那里一闪一闪的是不行的,比如做了一个菜单,或者一个封面。可以在控制台使用的函数中有一个可以用来隐藏光标,除此之外,它在光标显示的时候还能设置光标的厚度。

 

效果

 

[cpp] view plaincopy

  1. #include "MyConsole.h"  
  2. #include <stdio.h>  
  3.   
  4. int main()    
  5. {    
  6.     CMyConsole myConsole;    
  7.   
  8.     system("pause");    // 暂停(默认光标样式)  
  9.   
  10.     myConsole.HideCursor();  
  11.     system("pause");    // 暂停(隐藏光标)  
  12.   
  13.     myConsole.ShowCursor(100);  
  14.     system("pause");    // 暂停(最厚光标)  
  15.   
  16.     return 0;    
  17. }    

 默认厚度的光标

 隐藏光标

 厚度为100的光标

 

 

相关信息

 

设置光标显示与隐藏,还有在显示的时候要显示多厚的光标,都在一个函数中设置:

[cpp] view plaincopy

  1. BOOL SetConsoleCursorInfo(                              // 设置光标信息  
  2.         HANDLE                      hConsoleOutput,     // 句柄  
  3.         CONST CONSOLE_CURSOR_INFO * lpConsoleCursorInfo // 光标信息  
  4. );  

Set 对应的是 Get 函数,除了名称不同外,其他都一样。关键结构 CONSOLE_CURSOR_INFO 内容:

 

[cpp] view plaincopy

  1. typedef struct _CONSOLE_CURSOR_INFO {   
  2.     DWORD dwSize;       // 光标百分比厚度(1~100)   
  3.     BOOL bVisible;      // 是否可见  
  4. } CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;  

 

 

设置光标函数

 

为了让功能更清晰一些,计划把设置光标函数分成两个。一个是隐藏光标,另一个是显示光标(参数为光标大小)。

 

[cpp] view plaincopy

  1. // ---- 显示光标  
  2. void CMyConsole::ShowCursor(DWORD dwSize/* =20 */const  
  3. {  
  4.     CONSOLE_CURSOR_INFO curInfo;  
  5.   
  6.     curInfo.dwSize = dwSize;  
  7.     curInfo.bVisible = TRUE;  
  8.   
  9.     SetConsoleCursorInfo(hOut, &curInfo);  
  10. }  
  11.   
  12. // ---- 隐藏光标  
  13. void CMyConsole::HideCursor() const  
  14. {  
  15.     CONSOLE_CURSOR_INFO curInfo;  
  16.   
  17.     curInfo.dwSize = 1;             // 如果没赋值的话,隐藏光标无效  
  18.     curInfo.bVisible = FALSE;  
  19.   
  20.     SetConsoleCursorInfo(hOut, &curInfo);  
  21. }  

 


http://www.niftyadmin.cn/n/3656338.html

相关文章

Python脚本小工具之文件与内容搜索

目录 一、前言 二、代码 三、结果 一、前言 ​日常工作中&#xff0c;经常需要在指定路径下查找指定类型的文件&#xff0c;或者是指定内容的查找&#xff0c;在window环境中&#xff0c;即可以使用一些工具如notepad或everything&#xff0c;也可以使用python脚本。但在l…

[翻译]脚本引擎实现 - 第四部分 符号表和文法树

原文地址&#xff1a;http://www.flipcode.com/articles/scripting_issue04.shtml 作者&#xff1a;Jan Niestadt译者&#xff1a;Tony Qu介绍既然我们在上两部分中做了一些有益的事&#xff0c;我们就需要把我们从程序的数据结构中收集的数据保存起来&#xff0c;这就是我们接…

关于VS2005中的Code Snippets Manager的问题及解决

Code Snippets Manager是VS2005专门用来管理代码块智能感知的工具。然而&#xff0c;使用它并没有预想中的那么顺利&#xff0c;特别是在做过多次目录添加和删除之后&#xff0c;可能出现添加在列表中的目录无法在智能感知列表中显示出来的情况&#xff1b;甚至会出现列表当中明…

控制台界面控制(九):读取键盘操作

本文为转载文档&#xff0c;原文链接为&#xff1a;http://blog.csdn.net/bnb45/article/details/8035346 读取键盘操作指的是&#xff0c;当我们输入什么的时候&#xff0c;控制台可以通过函数截获&#xff0c;这时候可以在里面写下要进行的操作。因为键盘的操作是连续的&…

[翻译]脚本引擎实现 - 第三部分 解析器

原文地址&#xff1a;http://www.flipcode.com/articles/scripting_issue03.shtml 作者&#xff1a;Jan Niestadt译者&#xff1a;Tony Qu介绍第二部分的程序运行得很好&#xff0c;它把程序转换为符号(token)&#xff0c;所有的关键字、操作符、标点符号、标识符和常数都马上被…

控制台界面控制(十):读取鼠标操作

本文为转载文档&#xff0c;原文链接&#xff1a;http://blog.csdn.net/bnb45/article/details/8042819 我在看到这一章之前一直不知道控制台也能通过鼠标来操作。控制台的鼠标操作需要得到鼠标位置信息&#xff0c;左右键信息&#xff0c;单双击等等。 效果 当鼠标在控制台范围…

firefox下几个实用的免费开发插件

今天在看Ajax基础教程&#xff0c;看到书中推荐了几个不错的工具WebDeveloper提供了许多开发中十分有用的环境模拟工具&#xff0c;如禁用JavaScript&#xff0c;描出页面中的隐藏表单等&#xff0c;对于web脚本开发人员特别有用&#xff0c;而且它是firefox插件下载地址&#…

键盘按键数字对照表

本文为转载文档&#xff0c;原文地址&#xff1a;http://blog.csdn.net/bnb45/article/details/8035291 扫描码和虚拟码有对应的关系&#xff0c;但它们是不同的。键盘扫描码和具体的硬件有关&#xff0c;不同的厂商对同一个按键的扫描码可能不同。计算机先获得扫描码&#xff…