📄 有没有unix下curses中的菜单函数good.htm
字号:
最后登录: 2004-07-08<br /> 帖子总数: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?mode=all_author&key=beginnersco&u=15112 target=_blank>89</a><br /> 精华帖子: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?forum_num=-1&mode=author_name&key=beginnersco&u=15112 target=_blank>1</a><br /> 原创精华: 0<br /> 来自: 北京海淀<br /> 在线状态: ...<font color=#999999>离线</font>...<br /> </span> </td> <td class="row2" width="100%" height="28" valign="top"><table width="95%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100%"><a href="/forum//forum/viewtopic.php?p=133050#133050"><img src="/forum/templates/subSilver/images/icon_minipost.gif" width="12" height="9" alt="帖子总数" title="帖子总数" border="0" /></a><span class="postdetails">发表于: 2002-11-05 12:11<span class="gen"> </span> 发表主题: [求助]有没有UNIX下curses中的菜单函数,怎么用?谢谢!急! (无 </span></td> <td valign="top" align="right" nowrap="nowrap"><a href="/forum/posting.php?mode=quote&p=133050"><img src="/forum/templates/subSilver/images/lang_chinese_simplified/icon_quote.gif" alt="引用并回复" title="引用并回复" border="0" /></a> </td> </tr> <tr> <td colspan="2"><hr /></td> </tr> <tr> <td colspan="2"><span class="postbody">各位,请教了,给点帮助!</span><span class="postbody"><br><br></span><span class="gensmall"></span></td> </tr> </table></td> </tr> <tr> <td class="row2" width="150" align="left" valign="middle"><span class="nav"><a href="#top" class="nav">返回页首</a></span></td> <td class="row2" width="100%" height="28" valign="bottom" nowrap="nowrap"><table cellspacing="0" cellpadding="0" border="0" height="18" width="18"> <tr> <td valign="middle" nowrap="nowrap"> </td> </tr> </table></td> </tr> <tr> <td class="spaceRow" colspan="2" height="1"><img src="templates/subSilver/images/spacer.gif" alt="" width="1" height="1" /></td> </tr> <tr> <td width="150" align="left" valign="top" class="row1"> <span class="name"><a name="133051"></a> <img src=/forum/images/teammo.gif alt=此人为版主 width=16> <b>sdccf <img src="/forum/templates/subSilver/images/icon_minigender_male.gif" alt="性别:帅哥" title="性别:帅哥" border="0" /></b> <a href=http://www.chinaunix.net/love/detail.html target=_blank><img src=/images/love_new.gif alt=爱心使者 border=0></a></span><br /> <span class="postdetails">版主 - 天神<br /><br /> <img src="/forum/images/avatars/userupload/1749177814079dab8217ff.jpg" alt="" border="0" onload="javascript:if(this.width>150)this.width=140"/><br /> <img src="/forum/images/level/pips10.gif" alt="天神" title="天神" border="0" /><br /> 注册时间: 2001-11-01<br /> 最后登录: 2004-08-21<br /> 帖子总数: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?mode=all_author&key=sdccf&u=421 target=_blank>30282</a><br /> 精华帖子: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?forum_num=-1&mode=author_name&key=sdccf&u=421 target=_blank>251</a><br /> 原创精华: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?forum_num=-1&mode=author_name&key=sdccf&u=421 target=_blank>11</a><br /> 来自: 山东<br /> 在线状态: ...保密...<br /> </span> </td> <td class="row1" width="100%" height="28" valign="top"><table width="95%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100%"><a href="/forum//forum/viewtopic.php?p=133051#133051"><img src="/forum/templates/subSilver/images/icon_minipost.gif" width="12" height="9" alt="帖子总数" title="帖子总数" border="0" /></a><span class="postdetails">发表于: 2002-11-05 12:11<span class="gen"> </span> 发表主题: [求助]有没有UNIX下curses中的菜单函数,怎么用?谢谢!急! (无 </span></td> <td valign="top" align="right" nowrap="nowrap"><a href="/forum/posting.php?mode=quote&p=133051"><img src="/forum/templates/subSilver/images/lang_chinese_simplified/icon_quote.gif" alt="引用并回复" title="引用并回复" border="0" /></a> </td> </tr> <tr> <td colspan="2"><hr /></td> </tr> <tr> <td colspan="2"><span class="postbody">直接用即可。</span><span class="postbody"><br><br><br />_________________<br /><a href="http://unix-cd.com/unixcd/get.asp?get=sdccf" target="_blank" class="postlink">Unix爱好者家园</a></span><span class="gensmall"></span></td> </tr> </table></td> </tr> <tr> <td class="row1" width="150" align="left" valign="middle"><span class="nav"><a href="#top" class="nav">返回页首</a></span></td> <td class="row1" width="100%" height="28" valign="bottom" nowrap="nowrap"><table cellspacing="0" cellpadding="0" border="0" height="18" width="18"> <tr> <td valign="middle" nowrap="nowrap"> </td> </tr> </table></td> </tr> <tr> <td class="spaceRow" colspan="2" height="1"><img src="templates/subSilver/images/spacer.gif" alt="" width="1" height="1" /></td> </tr> <tr> <td width="150" align="left" valign="top" class="row2"> <span class="name"><a name="133052"></a> <b>beginnersco <img src="/forum/templates/subSilver/images/icon_minigender_male.gif" alt="性别:帅哥" title="性别:帅哥" border="0" /></b> </span><br /> <span class="postdetails">圣骑士<br /><br /> <br /> <img src="/forum/images/level/pips3.gif" alt="圣骑士" title="圣骑士" border="0" /><br /> 注册时间: 2002-08-14<br /> 最后登录: 2004-07-08<br /> 帖子总数: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?mode=all_author&key=beginnersco&u=15112 target=_blank>89</a><br /> 精华帖子: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?forum_num=-1&mode=author_name&key=beginnersco&u=15112 target=_blank>1</a><br /> 原创精华: 0<br /> 来自: 北京海淀<br /> 在线状态: ...<font color=#999999>离线</font>...<br /> </span> </td> <td class="row2" width="100%" height="28" valign="top"><table width="95%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100%"><a href="/forum//forum/viewtopic.php?p=133052#133052"><img src="/forum/templates/subSilver/images/icon_minipost.gif" width="12" height="9" alt="帖子总数" title="帖子总数" border="0" /></a><span class="postdetails">发表于: 2002-11-05 13:11<span class="gen"> </span> 发表主题: [求助]有没有UNIX下curses中的菜单函数,怎么用?谢谢!急! (无 </span></td> <td valign="top" align="right" nowrap="nowrap"><a href="/forum/posting.php?mode=quote&p=133052"><img src="/forum/templates/subSilver/images/lang_chinese_simplified/icon_quote.gif" alt="引用并回复" title="引用并回复" border="0" /></a> </td> </tr> <tr> <td colspan="2"><hr /></td> </tr> <tr> <td colspan="2"><span class="postbody">斑竹,是哪几个函数?</span><span class="postbody"><br><br></span><span class="gensmall"></span></td> </tr> </table></td> </tr> <tr> <td class="row2" width="150" align="left" valign="middle"><span class="nav"><a href="#top" class="nav">返回页首</a></span></td> <td class="row2" width="100%" height="28" valign="bottom" nowrap="nowrap"><table cellspacing="0" cellpadding="0" border="0" height="18" width="18"> <tr> <td valign="middle" nowrap="nowrap"> </td> </tr> </table></td> </tr> <tr> <td class="spaceRow" colspan="2" height="1"><img src="templates/subSilver/images/spacer.gif" alt="" width="1" height="1" /></td> </tr> <tr> <td width="150" align="left" valign="top" class="row1"> <span class="name"><a name="133053"></a> <img src=/forum/images/teammo.gif alt=此人为版主 width=16> <b>sdccf <img src="/forum/templates/subSilver/images/icon_minigender_male.gif" alt="性别:帅哥" title="性别:帅哥" border="0" /></b> <a href=http://www.chinaunix.net/love/detail.html target=_blank><img src=/images/love_new.gif alt=爱心使者 border=0></a></span><br /> <span class="postdetails">版主 - 天神<br /><br /> <img src="/forum/images/avatars/userupload/1749177814079dab8217ff.jpg" alt="" border="0" onload="javascript:if(this.width>150)this.width=140"/><br /> <img src="/forum/images/level/pips10.gif" alt="天神" title="天神" border="0" /><br /> 注册时间: 2001-11-01<br /> 最后登录: 2004-08-21<br /> 帖子总数: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?mode=all_author&key=sdccf&u=421 target=_blank>30282</a><br /> 精华帖子: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?forum_num=-1&mode=author_name&key=sdccf&u=421 target=_blank>251</a><br /> 原创精华: <a href=http://www.chinaunix.net/cgi-bin/forum/search.cgi?forum_num=-1&mode=author_name&key=sdccf&u=421 target=_blank>11</a><br /> 来自: 山东<br /> 在线状态: ...保密...<br /> </span> </td> <td class="row1" width="100%" height="28" valign="top"><table width="95%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100%"><a href="/forum//forum/viewtopic.php?p=133053#133053"><img src="/forum/templates/subSilver/images/icon_minipost.gif" width="12" height="9" alt="帖子总数" title="帖子总数" border="0" /></a><span class="postdetails">发表于: 2002-11-05 13:11<span class="gen"> </span> 发表主题: [求助]有没有UNIX下curses中的菜单函数,怎么用?谢谢!急! (无 </span></td> <td valign="top" align="right" nowrap="nowrap"><a href="/forum/posting.php?mode=quote&p=133053"><img src="/forum/templates/subSilver/images/lang_chinese_simplified/icon_quote.gif" alt="引用并回复" title="引用并回复" border="0" /></a> </td> </tr> <tr> <td colspan="2"><hr /></td> </tr> <tr> <td colspan="2"><span class="postbody"><br /><br />UNIX 屏幕导向程序的发展利器 - curses (之一) <br /><br />作者:林建宏<br /><br /> ■ 前言<br /><br /> 相信您在网络上一定用过如 tin,elm 等工具, 这些软体有项共同的特色,<br /> 即他们能利用上下左右等方向键来控制光标的位置. 除此之外, 这些程序<br /> 的画面也较为美观. 对 Programming 有兴趣的朋友一定对此感到好奇, 也<br /> 许他能在 PC 上用 Turbo C 轻易地写出类似的程序, 然而, 但当他将相同<br /> 的程序一字不变地移到工作站上来编译时, 却出现一堆抓也抓不完的错误.<br /> 其实, 原因很简单, 他使用的函数库可能在 UNIX 上是没有定义的. 有些<br /> 在 Turbo-C 上被广泛使用的一些函数, 可能在 UNIX 上是不被定义的.<br /><br /> 为了因应网络上各式各样的终端类型 (terminal), UNIX 上特别发展出<br /> 一套函数库, 专门用来处理 UNIX 上光标移动及屏幕的显示. 这就是本篇<br /> 文章要为您介绍的 - curses.h 函数库. 利用这个函数库, 您也可以写出<br /> 像 elm 般利用方向键来移动光棒位置的程序. (CCCA 近来所提供的线上选<br /> 课程序, 及程序服务界面, 即是笔者利用 curses 发展而成的 )<br /><br /><br /> ■ curses 的历史与版本<br /><br /> cureses 最早是由柏克莱大学的 Bill Joy 及 Ken Arnold 所发展出来的.<br /> 当时发展此一函数库主要原因是为了提高程序对不同终端的相容性而设<br /> 计的. 因此, 利用 curses 发展出来的程序将和您所使用的终端无关.<br /> 也就是说, 您不必担心您的程序因为换了一部终端而无法使用. 这对程<br /> 序设计者而言, 尤其是网络上程序的撰写, 是件相当重要的一件事.<br /> curses之所以能对上百种以上的终端工作, 是因为它将所有终端的资<br /> 料, 存放在一个叫 termcap 的资料库, ( 而在第二版的 System V 系统中<br /> , 新版的 curses 以 terminfo 取代原来的 termcap). 有了这些记录, 程<br /> 式就能够知道遇到哪一种终端时, 须送什麽字元才能移动光标的位置,<br /> 送什麽字元才能清除整个屏幕清除. (* 注一)<br /><br /> 另外, 本文的介绍 以 System V 的 curses 版本为主.<br /><br /><br /> ■ 如何在您的程序使用 curses ?<br /><br /> 在您的 C 程序的档头将 <curses.h> include 进来.当您引进 curses.h<br /> 这个函数库後, 系统会自动将 <stdio.h> 和 <unctl.h>一并 include 进<br /> 来.另外, 在 System V 版本中, <terminfo.h> 这个函数库也将一并<br /> include进来.<br /><br /> #include <curses.h><br /><br /> main()<br /> {<br /> : :<br /> : :<br /> }<br /><br /> 当然, 您的系统内必须放有 curses.h 这个函数库.<br /><br /><br /> ■ 如何编译(compile)<br /><br /> 当您编辑好您的程序, 在 UNIX 提示符号下键入:<br /><br /> % /usr/5bin/cc [file.c] -lcurses<br /> ^^^^^^^<br /> 引进 curses.h 这个 library<br /><br /> 或 % /usr/5bin/cc [file.c] -lcurses -ltermlib<br /><br /> (*注二)<br /><br /><br /> ■ 如何开始我的第一个 curses 程序?<br /><br /> 在开始使用 curses 的一切命令之前, 您必须先利用 initscr()这个函数<br /> 来开启 curses 模式.<br /><br /> 相对的, 在结束 curses 模式前 ( 通常在您结束程序前 ) 也必须以<br /> endwin()来关闭 curses 模式.<br /><br /> #include <curses.h><br /><br /> main()<br /> {<br /> initscr();<br /> : :<br /> : :<br /> : :<br /> endwin();<br /> }<br /><br /> 这是一般 curses 程序标准的模式.<br /><br /> 此外, 您可以就您程序所须, 而做不同的设定. 当然, 您可以不做设定,而<br /> 只是呼叫 initscr().<br /><br /> 您可以自己写一个函数来存放所有您所须要的设定. 平常使用时, 只要呼<br /> 叫这个函数即可启动 curses 并完成一切设定.<br /><br /> 下面的例子, 即是笔者将平常较常用的一些设定放在一个叫 initial()的函<br /> 式内.<br /><br /> void initial()<br /> {<br /> initscr();<br /> cbreak();<br /> nonl();<br /> noecho();<br /> intrflush(stdscr,FALSE);<br /> keypad(stdscr,TRUE);<br /> refresh();<br /> }<br /><br /><br /> 各函数分别介绍如下:<br /><br /> □ initscr()<br /><br /> initscr() 是一般 curses 程序必须先呼叫的函数, 一但这个函数<br /> 被呼叫之後, 系统将根据终端的形态并启动 curses 模式.<br /><br /><br /> □ endwin()<br /><br /> curses 通常以呼叫 endwin() 来结束程序. endwin() 可用来关闭<br /> curses 模式, 或是暂时的跳离 curses 模式.如果您在程序中须要<br /> call shell ( 如呼叫 system() 函数 ) 或是需要做 system call,<br /> 就必须先以 endwin() 暂时跳离 curses 模式. 最後再以<br /> wrefresh() doupdate() 来重返 curses 模式.<br /><br /><br /> □ cbreak()<br /> nocbreak()<br /><br /> 当 cbreak 模式被开启後, 除了 DELETE 或 CTRL 等仍被视为特殊
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -