
Ncurses
文章平均质量分 72
ZalGGboy
这个作者很懒,什么都没留下…
展开
-
Ncurses学习经历(四) 输出修饰(对输出数据的修饰,加粗、下划线等)
1.输出修饰 我们已经通过一些例子看到了文字修饰(Attributes)的效果。给某些文字加上修饰会使文字更加醒目和美观。在某些程度上也会增加输出信息的可读性。下面这个程序将会把一个C语言的源程序文件的注释部分用粗体(BOLD)输出。#include <ncurses.h>int main(int argc, char *argv[]){ int ch, prev;...原创 2018-04-14 11:45:58 · 1466 阅读 · 0 评论 -
Ncurses学习经历(十三)菜单系统的核心
如你在上面的例子中所看到的,menu_driver 在更新菜单时有着举足轻重的作用。所以了解它的各个选项和它们的作用就很有必要了。前面已经解释过,menu_driver()的第二个参数可以是一个导航请求。一个可打印的字符(ASCII 码)或KEY_MOUSE 键值。我们来剖析一下各个导航请求:REQ_LEFT_ITEM 和REQ_RIGHT_ITEM一个菜单可以用多列的方式显示菜单...原创 2018-06-05 21:23:28 · 1691 阅读 · 0 评论 -
Ncurses学习经历(十二)菜单库
菜单库对cureses 基础库进行了很好的扩展。你可以通过这个库所提供的函数方便的创建菜单。如果你想让它更美观,可以定制它的显示效果。下面我们就来看看这个库。菜单是一个用来帮助用户选择子菜单项的屏幕。简而言之,菜单就是一个菜单项的集合,使你可以方便的从中选择相应的菜单命令。curses 菜单库还提供编制多选菜单的功能。有些读者可能不了解多选菜单。这个我们稍后讨论,我们先来了解一下菜单库...原创 2018-06-05 21:21:09 · 2915 阅读 · 0 评论 -
Ncurses学习经历(十一)面板库——用户指针
1. 使用用户指针 在上面例子中,使用用户指针在循环里查找下一个要显示的面板。我们可以通过指定一个用户指针给面板添加自定义信息,这个指针可以指向你想要存储的任何信息。在这个例子中,我们用指针存储了循环中下一个要显示的面板。其中,用户指针可以用set_panel_userptr()函数设定。要想访问某个面板的用户指针,就必须以该面板作为panel_userprt()函数的参数,函数就会返回该面...原创 2018-05-15 20:18:55 · 1095 阅读 · 0 评论 -
Ncurses学习经历(十)面板库详解
在精通curses 库后,你可能会想尝试着做一些更大的项目。为了让界面看起来更专业,你可能会创建许多重叠的窗口,但不幸的是,你很快会发现它们变得难以管理,多次的更新窗口使开发变得异常困难。如果你没有按照适当的顺序刷新那些窗口的话,它们就会给你带来很多麻烦。 不过别失望,面板库(Panel Library)提供了一个很好的解决方案。用ncureses 的开发者的话来说就是: 如果...原创 2018-05-15 20:16:19 · 2085 阅读 · 0 评论 -
Ncurses学习经历(九)屏幕操作
在这一章我们将了解一些管理屏幕的函数。这些函数经常被用于编写基于控制台的游戏。顺便让我们写一些非常有意思的程序。1. getyx()系列函数 getyx() 函数可以用来取得当前光标的位置。并把它存储在传递给它的两个变量中。getyx()是一个宏,所以不能向它传送变量的地址。你只能这样调用它:getyx(win, y, x);/* win: 窗口的指针* y, x: 光标坐标的y, ...原创 2018-05-08 11:20:58 · 3714 阅读 · 0 评论 -
Ncurses学习经历(八) 使用鼠标操作
1. 基础知识 在使用鼠标之前,首先要调用mousemask( )这个函数来激活你想要接收的鼠标事件。mousemask( mmask_t newmask, /* 你想要监听的鼠标事件掩码*/mmask_t *oldmask ) /* 旧版本使用的鼠标事件掩码*/上述函数中的第一个参数,就是你所要监听的事件的位掩码,默认情况下,在使用该函数之前,所有鼠标事件的接收状态都是未激活的。位掩码ALL...原创 2018-05-03 10:57:27 · 1952 阅读 · 1 评论 -
Ncurses学习经历(七) 键盘管理
1.基础知识 每一个GUI(图形用户界面)都有强大的用户交互界面。一个curses 程序应该对用户的输入(仅通过键盘和鼠标)及时的做出反应。那就让我们从处理键盘开始。就像前面章节中的例子那样,很容易就能取得用户的输入。一个最简单的方法是使用getch()函数。如果你喜欢处理单个按键,而不是处理一行的话(经常以回车键作为一行结束标志),你应该在读取按键之前激活cbreak 模式。如果要读取功能...原创 2018-05-03 10:52:32 · 1986 阅读 · 0 评论 -
Ncurses学习经历(六)颜色系统讲述
1.基础知识如果生命中没有颜色将会单调无趣。curses 有一个非常不错的颜色处理机制。让我们通过以下程序来了解一下颜色系统:例9:一个简单的颜色使用例子#include <ncurses.h>void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string);int main(in...原创 2018-04-18 16:33:01 · 1083 阅读 · 0 评论 -
Ncurses学习经历(三)窗口机制简介
在我们面对数以万计的curses 函数之前,让我们先了解一下窗口机制。关于窗口机制的详细内容我们会在以后的章节中详细介绍,本章只介绍窗口的基本概念。 窗口是由curses 系统定义的一个假想的屏幕,并不像Windows 平台上的窗口那样具有边框。当curses 初始化的时候,它会默认创建一个叫做stdscr 的窗口。这个窗口的屏幕一般是80列,25 行(根据显示环境的不同,可能会出现不同的大...原创 2018-04-13 13:01:28 · 2134 阅读 · 1 评论 -
Ncurses学习经历(二) 编译包含ncurses库函数的程序
如果要调用ncurses 库中的函数,你必须在代码中加载ncurses.h 文件,就是要在C 或C++程序开头添加“#include <ncurses.h>”,然后在链接时标记lncurses参数。(注:ncurses 库已经包含“stdio.h”)#include <ncurses.h>。。。编译和连接命令: gcc <程序文件> lncurses例1:Hel...原创 2018-04-13 12:57:17 · 1797 阅读 · 0 评论 -
Ncurses学习经历(一) Ncurses简介与下载安装
1.NCURSES 是什么?你可能会疑惑,引入的这些技术术语是什么。假设在使用termcap 或者terminfo 的情况下,每个应用程序都在访问terminfo 数据库并且做一些必要的处理(比如发送控制字符等等)。不久这些操作的复杂度将会变得难以控制。于是,curses 诞生了。curses 的命名是来自一个叫做“cursor optimization”(光标最优化)的双关语(译者注:curse...原创 2018-04-12 19:19:06 · 2471 阅读 · 0 评论 -
Ncurses学习经历(五)窗口机制详述
九.窗口机制 窗口(Window)机制是整个curses 系统的核心。通过前面的例子我们看到了基于“标准窗口”(stdscr)的一些操作函数。即使设计一个最简单的图形用户界面(GUI),都需要用到窗口。你可能需要将屏幕分成几个部分并分别处理,然而,将屏幕拆分成各个窗口,然后独立处理每个窗口是比较高效的方法。使用窗口的另外一个重要原因是:你应当始终在你的程序中追求一种更好的、更易于管理的设计方...原创 2018-04-15 17:15:40 · 2715 阅读 · 1 评论 -
C语言项目(五)——基于Linux系统下的带有GUI界面的即时通信软件——界面演示
知识点:1.TCP/IP通信(端口号、ip地址、网关)2.多路复用、多线程并发、线程同步3.sqlite3数据库、保存注册用户、离线用户、聊天记录4.系统调用、文件传输5.Makefile(自学)6.Ncurses界面库,菜单域、表单域、窗口、ncurses语法函数(自学)7.C语言、数据结构(线性表) + 算法(大量算法) 源代码暂不发送、正不断完善,虽然是个...原创 2018-08-01 09:43:13 · 3146 阅读 · 4 评论