如果你说的是那个GUI库的话,实现原理当然是直接打开console buffer然后写字符啊,或者通过一些奇怪的字符让shell来帮你做一样的事情,就跟GUI点像素是同一个道理。这种操作当然是依赖于操作系统的。Unix的很多escape sequence在Windows下面就用不了。
譬如说Windows,你要完全操纵一个console application上面的东西,你需要大量的函数:https://msdn.microsoft.com/en-us/library/windows/desktop/ms682073(v=vs.85).aspx 。只有用满了这些,你才能在Windows上面做一个这样的GUI库,支持鼠标键盘滚轮操作,还有随意修改任何坐标的字符并控制什么时候刷新,还不会被locale和code page搞。
当然做一个简单的并不会很难,只要把这些奇怪的边界条件都处理好了,控件都是小事,顺便还可以增长如何让GUI可以适应中文、韩文、阿拉伯文、英文、泰文、菲律宾文等奇怪文字的知识。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。