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 库安装及函数使用相关推荐

  1. C语言windows.h库的常用函数(三)

    SetCursorPos函数 用途 SetCursorPos函数是windows.h库中用来设置指针位置的函数,使用该函数鼠标指针将会直接跳至指定坐标位置 参数 SetCursorPos函数拥有x和y ...

  2. C语言windows.h库的常用函数(二)

    GetCursorPos函数 在上一篇中的WindowFromPoint函数的示例代码中就已经用到了GetCursorPos函数,这是一个用于获取鼠标指针位置的函数. #include<stdi ...

  3. C语言windows.h库的常用函数(一)

    1:FindWindow函数 该函数可以通过窗口类名或者窗口标题名来查找特定窗口句柄,返回值是窗口的句柄(在Windows中,句柄是一个系统内部数据结构的引用.例如当你操作一个窗口,或说是一个Delp ...

  4. C语言windows.h库的常用函数(四)

    CopyFile函数 用途 CopyFile函数可以用来复制文件到指定目录. 参数 CopyFile("文件源目录","文件目标目录",TRUE or FALS ...

  5. C语言数学函数库<math.h>及常用函数

    C语言数学函数库<math.h>及常用函数 一.<math.h> C语言中常用的一个数学函数库,里面涵盖了常用的数学运算,如求对数.指数.绝对值.三角函数.两数中最大数等.使用 ...

  6. easy-x库graphics.h图形库安装

    easy-x库graphics.h图形库安装 graphics.h就是C++下easy-x库的一个图形库,还蛮好玩的,你想用vc6.0还是VS都是需要自己安装这个库的,接下来就来看着怎么安装吧! 一. ...

  7. python3.7安装numpy库_python2.7/3.7安装NumPy函数库的一种方法及小心得

    前提:python2.7以及对应的pip(python包管理工具,32/64位)已在win7上安装(安装地址:d:\python27). 在python官网上下载对应版本的NumPy函数库,下载到:d ...

  8. c语言中math的库函数,C语言中math.h库中的常用函数

    C语言中math.h库中的常用函数 int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fa ...

  9. Arduino WString.h库功能函数详细介绍

    Arduino WString.h库功能函数详细介绍 在Arduino开发框架下,String是一个很重要的数据类型.

最新文章

  1. 【GIT】Github上传本地代码详解
  2. 计算机数值方法期末考试,《计算机数值方法》测试题二
  3. find_in_set()和in()比较
  4. webservice gsoap 小记
  5. 【实用工具】借助adb在android机上测试
  6. SpringBoot之Junit单元测试
  7. BIM族库下载——Revit家用电器族库
  8. 修改棋牌服务器,关于棋牌服务器的一些程序搭建和数据应用步骤
  9. 微信公众号使用:给微信公众号自定义菜单中设置查看历史记录的功能
  10. Python语言程序设计 测验6: 组合数据类型 (第3周)
  11. 安装MathType后,不能快捷键复制粘贴
  12. html设置成电脑桌面背景,电脑桌面背景怎么更换 电脑桌面背景不能设置怎么办...
  13. [OpenGL] 非真实感渲染(NPR)的几种效果demo(水墨画/漫画/铅笔画)
  14. 数据分析师发展前景怎么样?
  15. ZDNS受邀出席腾讯云基础资源年会,分享《2020域名行业发展报告》
  16. android增加来电闪光灯功能吗,苹果/安卓手机闪光灯提醒功能:手机来电闪光灯提醒怎么设置?...
  17. 阿里云部署Tiny Tiny RSS踩坑笔记
  18. C++:最小二乘法拟合直线
  19. 如何取消系统“嘟”的蜂鸣声(报警声)
  20. 微型计算机的显卡,来看一款冷酷的游戏显卡,XFX讯景Radeon RX 6700XT海外版OC评测解析...

热门文章

  1. RAID技术超详细介绍(RAID大全)
  2. 高压线性 LED恒流驱动器 PWM调光 内置MOS1A 外置MOS 2A
  3. 视频特效滤镜 via Media Foundation Transform (MFT)
  4. cisco3560(Cisco3560 设置上行端口)
  5. java 适配器模式示例
  6. c语言精确线搜索抛物线法,一维迭代搜索(黄金分割法抛物线法).ppt
  7. windows共享文件夹报错:登录失败: 禁用当前的账户 解决办法
  8. java 鼠标悬停显示文字_IntelliJ在鼠标悬停时显示JavaDocs工具提示
  9. 服务器整机性能测试实验室,分析测试中心-重点实验室
  10. 基于角色管理的简易家谱管理系统(C++/C(几乎都是C))2020-06-16