# PerfectConsole
**Repository Path**: ProAyeR/perfect-console
## Basic Information
- **Project Name**: PerfectConsole
- **Description**: 几乎完美的控制台类。但几乎只支持Windows平台下的控制台。
- **Primary Language**: C++
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2022-07-01
- **Last Updated**: 2022-09-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Cpp, Console, color
## README
# PerfectConsole
#### 介绍
几乎完美的控制台类。但几乎只支持Windows平台下的控制台。
#### 软件架构
软件为了体现类的封装性,特意将各种函数的定义作为类的方法放在控制台类Console中,同时,在类的定义头文件内,也定义了许多方便用户使用的常量。
#### 功能速览
##### 光标类
设置控制台光标
设置控制台光标大小
设置控制台光标可见(隐藏控制台光标)
获得当前光标位置
获得当前光标大小
##### 事件类
获得鼠标位置
获得控制台鼠标点击位置
获得控制台按键输入
获得控制台按键状态
##### 控制台类
_控制台类继承自光标类与事件类_
代码页设置 (不使用```system("chcp")```)
设置文本属性/设置文本颜色 (局部文本属性,不使用```system("color")```)
设置文本位置
移动控制台屏幕显示位置
输出文本 (不使用```ostream```、```printf()```等)
填充颜色
暂停控制台程序 (不使用```system("pause")```)
延时 (使用```Sleep()```)
控制台清屏 (不使用```system("cls")```)
设置控制台窗口大小
设置控制台全屏
设置控制台最大化/最小化
隐藏控制台/显示控制台
移动控制台窗口位置
获得当前控制台窗口位置
设置控制台窗口标题 (不使用```system("title")```)
获取当前控制台窗口标题
禁用控制台关闭按钮
禁用Ctrl+C关闭功能
设置控制台字体
设置控制台点阵字体以及点阵字体大小
#### 安装教程
1. 将项目下`Console.cpp`与`Console.hpp`下载到本地
2. 在您的项目中包含`Console.hpp`
3. 使用命名空间`perfect_console`
4. 实例化一个控制台类,即可使用控制台方法,比如下面的代码
```C++
#include "Console.hpp"
#include
using namespace std;
using namespace perfect_console;
int main()
{
Console console;
console.SetTitle("This is Console title");
cout << console.SetColor("4e") << "Hello Colorful World!" << endl;
return 0;
}
```
#### 使用说明
具体的代码使用说明可以参考项目下examples文件夹内的例子
例子代码使用了作者认为的标准写法以及使用场景,所有代码包含注释
可以帮助你快速入手该库
同时还推荐您使用重载的方法将类中的函数转化为C函数以支持C
另外,在程序的源代码文件中,我为每个函数以及类添加了使用说明,如果你使用`Visual Studio Code`进行编辑
那么当你把鼠标悬浮在函数名上时,将会看见每个函数的说明,参数说明以及返回值说明
#### 注意事项
目前你需要用到`system()`的地方都使用类中已有函数替代了,如果您仍然需要使用这个函数,请注意
该函数的使用会导致鼠标事件的读取失效,所以不能在你的程序中使用该函数
#### 意义党必知
对于我个人来说,在控制台类的编写过程中我巩固了学习的各种C++语法功能的理解
同时,通过这个类的编写我初步感受了在使用他人API时应该如何去查资料
也学习了如何去自己编写一个自己的第三方库
对于大学课设党/小白程序员来说,这个支持库提供了许多不这么实用但是却花里胡哨的功能来让你的程序界面与众不同
如果能够认真研究,你会写出操作性和美观性十分优秀的程序操作界面甚至图形化操作界面
肯定能加分
我想说的是,对于小白来说,仅仅只是面对黑白相间的控制台,难免有些无趣
当想为控制台添加色彩时,网上三言两语不算特别系统的代码又让你无所适从
这个库就是为了让你的开发更加多彩更加有趣
为那些充满想法和创意的初级开发者一个平台,在控制台的条条框框里写出自己的代码