⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 8第八章:输出修饰(attributes).htm

📁 curses界面编程
💻 HTM
📖 第 1 页 / 共 5 页
字号:
mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>这些函数的作用范围是某一个指定的窗口。而上面的函数只作用在默认的</span><spanlang=EN-US style='font-family:Tahoma'>stdscr</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>上。</span><span lang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma'>8.6 chgat() </span></b><b><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数(</span></b><b><spanlang=EN-US style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma'>chgat()functions</span></b><b><span style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>)</span></b><b><span lang=EN-US style='font-size:14.0pt;mso-bidi-font-size:12.0pt;font-family:Tahoma'><o:p></o:p></span></b></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'>chgar()</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>函数被列在</span><span lang=EN-US style='font-family:Tahoma'>curs_attr</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>的</span><spanlang=EN-US style='font-family:Tahoma'>man_page </span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>的最末尾。事实上它是一个很有用的函数。它可以在不移动光标位置的情况下修改已输出的字符的修饰效果。它从光标当前位置处开始,以一个整型参数作为修改字符的个数。给这些字符<spanclass=msoIns><ins cite="mailto:Simon%20Zhan" datetime="2004-02-10T22:28">设置</ins></span>某一种修饰<spanclass=msoIns><ins cite="mailto:Simon%20Zhan" datetime="2004-02-10T22:28">属性</ins></span>。</span><spanlang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>当我们整型参数赋值为</span><spanlang=EN-US style='font-family:Tahoma'>-1</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>时,它代表从当前位置开始一直到这一行结束。如果你想从当前光标位置使整个一行的输出修饰变为反白显示时,可以这样使用:</span><spanlang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal style='margin-left:21.0pt;mso-para-margin-left:2.0gd'><b><spanlang=EN-US style='font-family:Tahoma'>chgat(-1, A_REVERSE, 0, NULL);<o:p></o:p></span></b></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>这个函数经常被用来修改已输出的字符的修饰效果。当然,你也可以根据自己的需要选择要修改的起始点和终止点。</span><spanlang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>这一类的函数还包括</span><spanlang=EN-US style='font-family:Tahoma'>wchgat(), mvchgat()</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>。它们的使用方法和差不多</span><span lang=EN-USstyle='font-family:Tahoma'>chgat()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>,只不过</span><span lang=EN-US style='font-family:Tahoma'>wchgat()</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>要指定一个窗口。</span><span lang=EN-US style='font-family:Tahoma'>mvchgat()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>将光标先移动到指定位置,然后才执行剩下的修饰部分。同样的,</span><spanlang=EN-US style='font-family:Tahoma'>chgat()</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>是一个宏,只不过用</span><span lang=EN-US style='font-family:Tahoma'>stdscr</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>替代了指定的窗口。大部分不带</span><span lang=EN-USstyle='font-family:Tahoma'>w</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>前缀的函数都是以</span><spanlang=EN-US style='font-family:Tahoma'>stdscr</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>作为默认窗口的宏。</span><span lang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><b><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>例6:</span></b><b><spanlang=EN-US style='font-family:Tahoma'>mvchgat()</span></b><b><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>用法示例:</span></b><b><span lang=EN-USstyle='font-family:Tahoma'><o:p></o:p></span></b></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'>#include&lt;ncurses.h&gt;<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'>int main(intargc, char *argv[])<o:p></o:p></span></b></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'>{<spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></p><p class=MsoNormal style='text-indent:21.0pt'><b><span lang=EN-USstyle='font-family:Tahoma'>initscr();<span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b><spanlang=EN-US style='font-family:Tahoma'><span style='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>/* </span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>进入</span><span lang=EN-US style='font-family:Tahoma'>curses </span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>模式</span><spanlang=EN-US style='font-family:Tahoma'><span style='mso-tab-count:1'>&nbsp;&nbsp; </span>*/<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b>start_color();<spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp; </span></b><spanstyle='mso-tab-count:2'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>/*</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>开启颜色管理功能</span><span lang=EN-USstyle='font-family:Tahoma'><span style='mso-tab-count:1'>&nbsp; </span>*/<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b>init_pair(</b>1,COLOR_CYAN, COLOR_BLACK<b>);<o:p></o:p></b></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>printw(&quot;</span></b><spanlang=EN-US style='font-family:Tahoma'>A Big string which i didn't care to typefully <b>&quot;);<o:p></o:p></b></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>mvchgat(</span></b><spanlang=EN-US style='font-family:Tahoma'>0, 0, -1, A_BLINK, 1, NULL<b>);<spanstyle='mso-tab-count:1'>&nbsp;&nbsp; </span><o:p></o:p></b></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>/* <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-spacerun:yes'>&nbsp;</span>*</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>第一、二个参数表明了函数开始的位置</span><span lang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-spacerun:yes'>&nbsp;</span>*</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>第三个参数是被改变修饰的字符的数目,</span><span lang=EN-US style='font-family:Tahoma'>-1</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>表示一整行</span><span lang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-spacerun:yes'>&nbsp;</span>*</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>第四个参数是被改变的修饰名</span><span lang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-spacerun:yes'>&nbsp;</span>*</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>第五个参数是颜色索引。颜色索引已经在</span><span lang=EN-US style='font-family:Tahoma'>init_pair()</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>中被初试化了</span><span lang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-spacerun:yes'>&nbsp;</span>*</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>如果用0表示不使用颜色。</span><span lang=EN-US style='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-spacerun:yes'>&nbsp;</span>*</span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>最后一个总是</span><span lang=EN-US style='font-family:Tahoma'>NULL</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>,没什么特别的意义。</span><span lang=EN-USstyle='font-family:Tahoma'><o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-spacerun:yes'>&nbsp;</span>*/<o:p></o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>refresh();<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp;&nbsp;&nbsp; </span><span style='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>getch();<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>endwin();<spanstyle='mso-tab-count:3'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></b><spanlang=EN-US style='font-family:Tahoma'>/* </span><span style='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>结束</span><span lang=EN-US style='font-family:Tahoma'>curses</span><spanstyle='font-family:宋体;mso-ascii-font-family:Tahoma;mso-hansi-font-family:Tahoma;mso-bidi-font-family:Tahoma'>模式</span><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-spacerun:yes'>&nbsp; </span>*/<b><o:p></o:p></b></span></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'><spanstyle='mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>return 0;<o:p></o:p></span></b></p><p class=MsoNormal><b><span lang=EN-US style='font-family:Tahoma'>}<o:p></o:p></span></b></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-family:Tahoma'><spanclass=msoDel><del cite="mailto:顾宇" datetime="2004-05-22T22:05"><o:p>&nbsp;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -