ncurses.h 库安装及函数使用
ncurses库是一个Linux系统下的图形支持的函数库,使用方法可以阅读官方的手册,这里列出了里面许多有用的函数。
“ncurses.h” 包含 “stdio.h”
使用手册
安装
$ sudo apt install libncurses5-dev
编译时添加链接:
编译命令
g++ a.cpp -o a -l ncurses
函数列表
1.初始化函数
raw()和cbreak()
这两个函数用来关闭行缓冲,即读入后不会等待回车(好像也不会回显字符)。raw()模式读入字符不带信号,cbreak()会带信号,所以raw()可以读入’CTRL-C’,‘CTRL-Z’
echo()和noecho()
回显与不回显
keypad()
允许读入方向键和’F1’,‘F2’,等符号
使用
keypad(stdscr,TRUE);
ch=getch();
if(ch==KEY_F(1))printw("F1 key pressed");
halfdelay()
halfdelay()函数开启halfdelay模式,即在等待一段时间(你设定的)后还未读入到字符的话就执行别的语句
2.窗口输出
printw()
单个窗口输出,类似printf(),输出重定向到stdscr
printw("Hi There!");
refresh();
refresh()
刷新窗口到屏幕
wprintw()
多窗口输出
wprintw(win,"Hi There!!!");
wrefresh(win);
第一个参数是窗口,第二个是字符串
mvprintw(y,x,string)
移动到(y,x)然后打印string
mvwprintw(win,y,x,string)
移动到win窗口的(y,x然后打印)
addch()和addstr()
addch():打印单个字符(带属性)
addstr():打印字符串
立即打印到光标当前位置
形如addch(ch | A_BOLD | A_UNDERLINE);
来设置属性
或用attrset(),attron(),attroff().
mvaddch(),waddch(),wvwaddch()
mvaddch(row,col,ch)
mvaddch()移动光标到row行col列然后输出字符
相当于
move(row,col);
addch(ch);
其他类似
getmaxyx(stdscr,row,col);等到行数和列数
int row,col;
getmaxyx(stdscr,row,col);
getmaxyx()是一个宏
输入函数
getch(),scanw(),getstr(string),mvscanw(),wgetstr()
getch() 得到一个字符
scanw() 得到一个格式后的输入,类似scanf
getstr(string) 得到字符串
这些函数若没有使用raw()或cbreak()将会等待回车
属性
attron(ATTR);开启属性
attroff(ATTR);关闭属性
属性定义
A_NORMAL 正常显示(无高亮)
A_STANDOUT 终端最好的高亮模式
A_UNDERLINE 下划线
A_REVERSE 反色(背景白了)
A_BLINK 一闪一闪的
A_DIM 半亮,没原来那么亮了
A_BOLD 加粗
A_PROTECT 保护模式
A_INVIS 看不见或闪的模式
A_ALTCHARSET 备选字符集
A_CHARTEXT 位掩码
COLOR_PAIR(n) 第n颜色对
所有的属性可以通过或运算一起使用
attrset 和 attron的区别为attrset设置属性而attron开关它,所有attrset会完全覆盖原来的属性
可以用 standend()来设置回普通模式即attrset(A_NORMAL)
attr_get()得到当前窗口的属性和颜色对
以上函数都可以在前面加’w’来设置窗口属性
chgat()
不移动光标地设置一群字符的属性
-1设置为到最后一行
chgat(-1,ATTR,0,NULL);
从当前行到最后一行设置为某个属性
窗口
newwin() 函数分配窗口并且更新数据显示的结构,返回一个’WINDOW’结构体的指针
delwin() 销毁一个窗口,释放分配的内存
box()给窗口画一个边框
鼠标操作
mousemask(mmask_t newmask , /* The events you want to listen to */mmask *oldmmask) /* The old events mask */
Name Description---------------------------------------------------------------------BUTTON1_PRESSED mouse button 1 downBUTTON1_RELEASED mouse button 1 upBUTTON1_CLICKED mouse button 1 clickedBUTTON1_DOUBLE_CLICKED mouse button 1 double clickedBUTTON1_TRIPLE_CLICKED mouse button 1 triple clickedBUTTON2_PRESSED mouse button 2 downBUTTON2_RELEASED mouse button 2 upBUTTON2_CLICKED mouse button 2 clickedBUTTON2_DOUBLE_CLICKED mouse button 2 double clickedBUTTON2_TRIPLE_CLICKED mouse button 2 triple clickedBUTTON3_PRESSED mouse button 3 downBUTTON3_RELEASED mouse button 3 upBUTTON3_CLICKED mouse button 3 clickedBUTTON3_DOUBLE_CLICKED mouse button 3 double clickedBUTTON3_TRIPLE_CLICKED mouse button 3 triple clickedBUTTON4_PRESSED mouse button 4 downBUTTON4_RELEASED mouse button 4 upBUTTON4_CLICKED mouse button 4 clickedBUTTON4_DOUBLE_CLICKED mouse button 4 double clickedBUTTON4_TRIPLE_CLICKED mouse button 4 triple clickedBUTTON_SHIFT shift was down during button state changeBUTTON_CTRL control was down during button state changeBUTTON_ALT alt was down during button state changeALL_MOUSE_EVENTS report all button state changesREPORT_MOUSE_POSITION report mouse movement
KEY_MOUSE 为读入后的数值
getmouse()返回发生的鼠标事件
typedef struct{short id; /* ID to distinguish multiple devices */int x, y, z; /* event coordinates */mmask_t bstate; /* button state bits */} getmouse(&event)
getyx(win,y,x)
ncurses.h 库安装及函数使用相关推荐
- C语言windows.h库的常用函数(三)
SetCursorPos函数 用途 SetCursorPos函数是windows.h库中用来设置指针位置的函数,使用该函数鼠标指针将会直接跳至指定坐标位置 参数 SetCursorPos函数拥有x和y ...
- C语言windows.h库的常用函数(二)
GetCursorPos函数 在上一篇中的WindowFromPoint函数的示例代码中就已经用到了GetCursorPos函数,这是一个用于获取鼠标指针位置的函数. #include<stdi ...
- C语言windows.h库的常用函数(一)
1:FindWindow函数 该函数可以通过窗口类名或者窗口标题名来查找特定窗口句柄,返回值是窗口的句柄(在Windows中,句柄是一个系统内部数据结构的引用.例如当你操作一个窗口,或说是一个Delp ...
- C语言windows.h库的常用函数(四)
CopyFile函数 用途 CopyFile函数可以用来复制文件到指定目录. 参数 CopyFile("文件源目录","文件目标目录",TRUE or FALS ...
- C语言数学函数库<math.h>及常用函数
C语言数学函数库<math.h>及常用函数 一.<math.h> C语言中常用的一个数学函数库,里面涵盖了常用的数学运算,如求对数.指数.绝对值.三角函数.两数中最大数等.使用 ...
- easy-x库graphics.h图形库安装
easy-x库graphics.h图形库安装 graphics.h就是C++下easy-x库的一个图形库,还蛮好玩的,你想用vc6.0还是VS都是需要自己安装这个库的,接下来就来看着怎么安装吧! 一. ...
- python3.7安装numpy库_python2.7/3.7安装NumPy函数库的一种方法及小心得
前提:python2.7以及对应的pip(python包管理工具,32/64位)已在win7上安装(安装地址:d:\python27). 在python官网上下载对应版本的NumPy函数库,下载到:d ...
- c语言中math的库函数,C语言中math.h库中的常用函数
C语言中math.h库中的常用函数 int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fa ...
- Arduino WString.h库功能函数详细介绍
Arduino WString.h库功能函数详细介绍 在Arduino开发框架下,String是一个很重要的数据类型.
最新文章
- 【GIT】Github上传本地代码详解
- 计算机数值方法期末考试,《计算机数值方法》测试题二
- find_in_set()和in()比较
- webservice gsoap 小记
- 【实用工具】借助adb在android机上测试
- SpringBoot之Junit单元测试
- BIM族库下载——Revit家用电器族库
- 修改棋牌服务器,关于棋牌服务器的一些程序搭建和数据应用步骤
- 微信公众号使用:给微信公众号自定义菜单中设置查看历史记录的功能
- Python语言程序设计 测验6: 组合数据类型 (第3周)
- 安装MathType后,不能快捷键复制粘贴
- html设置成电脑桌面背景,电脑桌面背景怎么更换 电脑桌面背景不能设置怎么办...
- [OpenGL] 非真实感渲染(NPR)的几种效果demo(水墨画/漫画/铅笔画)
- 数据分析师发展前景怎么样?
- ZDNS受邀出席腾讯云基础资源年会,分享《2020域名行业发展报告》
- android增加来电闪光灯功能吗,苹果/安卓手机闪光灯提醒功能:手机来电闪光灯提醒怎么设置?...
- 阿里云部署Tiny Tiny RSS踩坑笔记
- C++:最小二乘法拟合直线
- 如何取消系统“嘟”的蜂鸣声(报警声)
- 微型计算机的显卡,来看一款冷酷的游戏显卡,XFX讯景Radeon RX 6700XT海外版OC评测解析...
热门文章
- RAID技术超详细介绍(RAID大全)
- 高压线性 LED恒流驱动器 PWM调光 内置MOS1A 外置MOS 2A
- 视频特效滤镜 via Media Foundation Transform (MFT)
- cisco3560(Cisco3560 设置上行端口)
- java 适配器模式示例
- c语言精确线搜索抛物线法,一维迭代搜索(黄金分割法抛物线法).ppt
- windows共享文件夹报错:登录失败: 禁用当前的账户 解决办法
- java 鼠标悬停显示文字_IntelliJ在鼠标悬停时显示JavaDocs工具提示
- 服务器整机性能测试实验室,分析测试中心-重点实验室
- 基于角色管理的简易家谱管理系统(C++/C(几乎都是C))2020-06-16