概述
XzyGraphics
- 基本内容
- 绘制函数
- FORM类
- 主要成员变量
- 成员函数
- 输入限制函数ENTER
- SCROLL_LIST类
- 主要成员变量
- 成员函数
- END
基本内容
坐标:
左上角为原点,x轴向右延伸,y轴向下延伸,无负坐标。
使用GOTOXY函数来控制光标位置。
GOTOXY(1,1)//控制光标至控制台左上角
颜色:
下划线加颜色单词,例如_Red为红色。
下划线前加H代表高亮,H_Red为高亮红。
高亮灰H_Gray为白色。
所有的颜色单词可以在头文件中看到。
SETCOLOR(_Green,1,1)
//执行后接下来程序的输出颜色就是绿色了,
//后两个参数是颜色修改失败时报错信息的输出位置
光标:
光标的显示与隐藏可以使用GUANGBIAO函数来控制。
GUANGBIAO(0);//0为不显示,1为显示
输出:
封装了一个输出函数SAY
SAY(H_Green,4,5,"Hello World!");
//在(4,5)位置输出一个高亮的绿色Hello World!
绘制函数
ANYLINE函数是用来画横线的
ANYLINE(_Blue,2,3,5,"+",1);//这条语句将会在(2,3)的位置输出5次+,每次输出后向右移动1个单位。
VERTICALLINE函数是用来画竖线的
VERTICALLINE(_Yellow,4,5,7,"|");//从(4,5)开始向下输出7次 |。
DRAW_SQURE函数用来画方框
DRAW_SQURE(1,1,7,7,_Green,"+",1);
//很简单,看看变量名就知道了
绘制函数基本上还没有怎么写,以后会有更多方便的绘制函数。主要的内容在下面。
FORM类
FORM是一个可以生成选单的类
int selection = 0;
FORM HELP(3, 3, 80, 25, 2, 2);//实例化一个选单对象HELP
HELP.title = "Developer N0P3";//设置选单的标题
HELP.TitleColor = H_GreenBlue;//设置标题的颜色
HELP.SETOPTIONNAME(0, "键入限制函数 ENTER");//设置0号选项名字
HELP.SETOPTIONNAME(1, "选单类 FORM");//设置1号选项名字
HELP.SETOPTIONNAME(2, "绘制函数组");//设置2号选项名字
HELP.SETOPTIONNAME(3, "其他");//设置3号选项名字
selection = HELP.SELECTION(10, 0, 14);//展开选单并让用户选择
//只需要简单的几行就可以构造一个完整的选择菜单
实例化一个选单对象时,前四个参数指定了生成位置左上角横纵坐标和右下角横纵坐标,最后两个是横向选项个数和纵向选项个数。
//觉得丑(?)可以自定义颜色和符号
主要成员变量
字符串(string):
选单标题title,构成选单的字符FormStr
,构成选项的字符OptionStr.
整型 (int):
选单的左上角坐标x1,y1
选单的右下角坐标x2,y2
选单标题的颜色TitleColor
每行选项个数optionX
每列选项个数optionY
成员函数
选择函数SELECTION:
共接收三个整型参数:
选单外框颜色COLOR_form
选项的颜色COLOR_option
选项名的颜色COLOR_str
返回值为整型,返回的是选项的值。选项的值默认从0开始按从上到下,从左到右的顺序直至最后一个选项。
函数调用后会在控制台展开一个选单,wsad(小写)控制高亮显示的选项,按下回车则函数返回选项的值,esc键退出选择返回值 -1。
使用后的选单不会清理自己。
清空函数CLEAR:
不需要参数,调用后清理选单所在的位置
无返回值
设置值函数SETVALUE:
需要两个整型参数:
选项编号id
修改的值InValue
无返回值。
获得值函数GETVALUE:
提供选项编号id,返回选项的值。
设置选项名函数SETOPTIONNAME:
提供选项编号id和选项名InName,默认选项没有名字。
获得选项值函数GETOPTIONNAME:
提供选项编号id,返回选项的名字。
获得选项坐标函数GETOPTIONXY:
需要提供选项id和两个用于储存选项坐标的整型变量。
绘制函数DRAW:
同样需要三个整型参数:
选单外框颜色COLOR_form
选项的颜色COLOR_option
选项名的颜色COLOR_str
绘制函数会在屏幕上绘制选单。
无返回值
测试函数TEST:
这个函数旨在开发阶段帮助开发者调整合适的选单参数。
不需要参数。
执行后方框会集中在左上角,wasd和ijkl分别控制方框的左上角和右下角,如果发生诡异的显示状况,可能是右下角不再是右下角导致的。
建议在使用的时候先控制右下角远离左上角。
按下**[ENTER]预览生成效果,再按一次回到移动模式。按下[TAB]**键可以隐藏方框,再按一次显示方框。
输入限制函数ENTER
这个函数在写图形界面时非常实用。
如果使用cin接收用户输入的话,用户可以通过输入换行和空格破坏画面。
使用ENTER函数就可以限制用户的输入。
ENTER(H_Gray,5,7,10);
//指定颜色为白色,在(5,7)的位置输入,并最长为10个字符超过会闪红色。
但是并不能正确处理宽字节,也就无法输入中文。
后续的更新会解决这个问题。
SCROLL_LIST类
SCROLL_LIST是一个可以生成滚动信息栏的类
SCROLL_LIST TestList(5, 5, 40, 7);
TestList.title = "信息栏";
TestList.TitleColor = H_Yellow;
TestList.DRAW(H_Blue);
TestList.CREATERECORD(H_Green, "Hello World!");
TestList.CREATERECORD(H_GreenBlue, "[N0P3]:", H_Gray, "Hello World!", H_Green, " --OK");
//最后看起来很长的代码其实非常简单
//又觉得丑(?)还是可以自定义颜色和符号
滚动信息栏的使用设计和选单很不一样。
主要成员变量
字符串(string):
信息栏标题title
构成信息栏边框的字符Str
整型 (int):
信息栏左上角坐标x,y
选单标题的颜色TitleColor
信息栏的长度(每行最多显示的长度)StrLimit
信息栏的高度(最多显示多少行)MaxNum
成员函数
信息栏绘制函数DRAW:
提供一个颜色参数,在控制台打印出信息栏的外框
无返回值。
清空函数CLEAR:
不需要参数,调用后清理信息栏所在的位置
无返回值。
创造记录函数CREATERECORD
创造纪录函数的参数最多为六个,
分为三组,每组由颜色和字符串两个参数组成。
按顺序称为记录的第一部分,第二部分和第三部分。
上面截图的第一条记录只用到了一个部分。
第二条用到了三部分。
第一部分通常起提示的作用,所以后两个部分如果过长会自动换行并与第一部分对齐。
现在中文换行可能会出现乱码,后续的更新会解决这个问题。
在实例化一个滚动信息栏对象后,
在程序的任何位置调用此函数就能立即在信息栏输出信息。信息过长会自动换行,超过显示的上限会滚动显示。
滚动函数ROLL
两个颜色参数分别指定信息栏外框的颜色和光标指针的颜色。
按ws来控制光标上下移动,光标到顶端或底部后继续向上或向下信息栏会开始滚动。
按下[ENTER]会返回光标所在的行数。行数从0开始向下递增。
按[ESC]返回-1;
播放函数DISPLAY
提供开始和结束的行数,信息栏就会显示这一段信息。播放不存在的信息会访问到非法内存
获得记录函数GETRECORD
提供行数返回一个RECORD对象。
直接对信息栏中的信息进行操作可能会导致访问非法内存等问题
END
XzyGraphics库只是我在大一时方便自己写程序的工具,分享出来帮助和我一样正在学习的人创造更好看的命令行界面。*(它用起来真的很简单!)*它的不足和缺点还有很多,我也会坚持继续更新。如果你有建议或问题,发送邮件至n0p3@nyist.edu.cn。
感谢你花时间来阅读我的第一篇博客。:)
ps:我上传时设置的积分是0,听说它的积分会自己上涨~
最后
以上就是正直彩虹为你收集整理的自己写的C++控制台应用快速图形化库 "XzyGraphics"(Windows)基本内容FORM类输入限制函数ENTERSCROLL_LIST类的全部内容,希望文章能够帮你解决自己写的C++控制台应用快速图形化库 "XzyGraphics"(Windows)基本内容FORM类输入限制函数ENTERSCROLL_LIST类所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复