Ncurses学习经历(十三)菜单系统的核心

本文详细介绍了Ncurses菜单系统中的移动请求,包括REQ_LEFT_ITEM和REQ_RIGHT_ITEM用于多列菜单的左右移动,REQ_UP_ITEM和REQ_DOWN_ITEM进行上下移动,REQ_SCR_系列请求实现屏幕滚动,REQ_FIRST_ITEM等请求定位菜单项,以及REQ_TOGGLE_ITEM用于锁定菜单项。此外,还讲解了样式匹配请求,允许用户通过ASCII字符串查找匹配菜单项。
        如你在上面的例子中所看到的,menu_driver 在更新菜单时有着举足轻重的作用。所以了解
它的各个选项和它们的作用就很有必要了。前面已经解释过,menu_driver()的第二个参数
可以是一个导航请求。一个可打印的字符(ASCII 码)或KEY_MOUSE 键值。我们来剖析
一下各个导航请求:

REQ_LEFT_ITEM 和REQ_RIGHT_ITEM

一个菜单可以用多列的方式显示菜单项,这可以用函数menu_format()来实现。当显示一个
多列菜单时,这两个移动请求可使menu drive()在当前菜单项位置左移或右移一个菜单项。
REQ_UP_ITEM 和REQ_DOWN_ITEM
这两个移动请求在上面的例子中已经出现过。将这两个移动请求传递给menu_driver 时,
menu_driver()从当前菜单项上移或下移一个菜单项。
NCURSES Programming HOWTO 中文版(第二版)
66
REQ_SCR_系列的移动请求
REQ_SCR_ULINE, REQ_SCR_DLINE, REQ

这份文档中用到的所有程序已经被打包并压缩成一个tar.gz文件。以下是这个压缩包解压缩后的目录结构: ncurses | |----> JustForFun -- just for fun 部分的程序 |----> basics -- 一些基础部分的程序 |----> demo -- make 之后的程序 | | | |----> exe -- 一些已编译的可执行示例程序 |----> forms -- 和form 库相关的程序 |----> menus -- 和menus 库相关的程序 |----> panels -- 和 panels 库相关的程序 |----> Makefile -- 一级目录的下的 Makefile |----> README -- 一级目录下的 README 文件包含程序说明。 |----> COPYING -- 程序版权信息文档。 这些目录下包扩以下的文件: JustForFun | |----> hanoi.c -- 汉诺塔示例 |----> life.c -- 生命游戏 |----> magic.c -- 数字幻方 |----> queens.c -- 皇后问题 |----> shuffle.c -- 智力拼图 |----> tt.c -- 一个非常简单的打字练习程序 basics | |----> acs_vars.c -- 可选字符(ACS)变量示例 |----> hello_world.c -- 简单的“Hello, World!”程序 |----> init_func_example.c -- 初始化函数示例 |----> key_code.c -- 显示键盘字符代码的程序 |----> mouse_menu.c -- 一个可以使用鼠标访问的菜单 |----> other_border.c -- 展示与box()函数不同的显示边框的其它函数 |----> printw_example.c -- 一个非常简单的使用printw()函数的例子 |----> scanw_example.c -- 一个非常简单的使用getstr()函数的例子 |----> simple_attr.c -- 一个在屏幕上打印C源程序注释的例子 |----> simple_color.c -- 一个简单的演示颜色的例子 |----> simple_key.c -- 一个可以用方向键访问的菜单的例子 |----> temp_leave.c -- 一个演示临时离开CURSES模式的例子 |----> win_border.c -- 展示窗口和边框的例子 |----> with_chgat.c -- chgat()函数使用的例子 forms | |----> form_attrib.c -- 展示field属性的用法 |----> form_options.c -- 展示field选项的用法 |----> form_simple.c -- 一个简单的表单例子 |----> form_win.c -- 一个简单的窗口和表单联合使用的例子 menus | |----> menu_attrib.c -- 展示菜单属性的用法 |----> menu_item_data.c -- 展示 item_name() 等等函数的用法 |----> menu_multi_column.c -- 建立多列菜单 |----> menu_scroll.c -- 展示菜单滚动的示例 |----> menu_simple.c -- 一个用方向键控制菜单的例子 |----> menu_toggle.c -- 建立多值菜单和解释 REQ_TOGGLE_ITEM |----> menu_userptr.c -- 用户指针的用法 |----> menu_win.c -- 菜单和窗口结合的演示例子 panels | |----> panel_browse.c -- 通过 tab 浏览展示用户指针的用法 |----> panel_hide.c -- 隐藏和取消隐藏面板的例子 |----> panel_resize.c -- 移动和改变面板大小的例子 |----> panel_simple.c -- 一个简单的面板使用例子 perl |---->01-10.pl --前10个例子的perl语言版 Makefile包含在一级主目录里。它将会把所有的程序编译成可执行的文件。并把这些文件存在demo/exec目录下面。你也可以选择将其编译到别的目录下。每个目录下都有一个README文件详细描述了每个目录下的C源程序的内容。 对于每一个示例,我都给出了这些程序调用NCURSES目录下相关文件的路径名。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值