2.2 終端模式設置
=================
2.2.1 ECHO模式
---------------
* 函數
int echo() / int noecho()
* 說明
1. ECHO模式即回顯模式,ECHO模式用來決定用戶的輸入是否立即回顯
2.2.2 CBREAK模式
-----------------
* 函數
int cbreak() / int nocbreak()
* 說明
1. CBREAK模式也被成為立即輸入模式,在此模式下,除了DELETE或者CTRL等仍然被視為特殊控制字符外,所有的輸入字符都被一一立即讀取出來.
2. 默認情況下CBREAK模式是打開的
3. 在舊版本的curses中,必須使用crmode()和nocrmode()取代cbreak()和nocbreak()
2.2.3 NEWLINE模式
------------------
* 函數
int nl() / int nonl()
* 說明
NEWLINE模式決定輸入時回車是否為\r\n.輸入時\r\n是否和起來作為一個回車鍵
2.2.4 功能鍵模式
-----------------
* 函數
int keypad(WINDOW *win,int flag)
* 參數說明
1. win指向需要設置功能鍵模式的窗口
2. flag為TRUE/FALSE用來指定模式的開啟或關閉
* 說明
1. 一般情況下,方向鍵與功能鍵這些特殊字符是無法被wgetch()之類的函數讀取出來的.開啟功能鍵模式之後,特殊字符會被轉化為curses.h內部定義的一些特殊鍵.
2. curses.h內部定義的特殊鍵一般以KEY_開頭,列表如下
* KEY_MIN curses中定義的最小的鍵值
* KEY_BREAK break按鍵
* KEY_DOWN 方向鍵下
* KEY_UP 方向鍵上
* KEY_LEFT 方向鍵左
* KEY_RIGHT 方向鍵右
* KEY_HOME home鍵
* KEY_BACKSPACE 退格鍵
* KEY_F0 功能鍵F0
* KEY_F(n) 功能鍵Fn
* KEY_DL 行刪除鍵
* KEY_IL 行插入建
* KEY_DC 字符刪除鍵
* KEY_IC 字符插入鍵
* KEY_NPAGE 下一頁
* KEY_PPAGE 上一頁
* KEY_END end鍵
* KEY_MAX curses定義的最大鍵值
2.2.5 RAW模式
--------------
* 函數
int raw() / int noraw()
* 說明
* 用戶的輸入會立即被接受,同時任何特殊字符將不再起作用,取而代之的是產生一個相應的信號
* 如果同時設置CBREAK和RAW模式,僅有RAW模式其作用
2.2.6 延遲模式
---------------
* 函數
int halfdelay(int tenth)
* 參數說明
1. tenth指定半延時的時間間隔,單位是10ms
int nodelay(WINDOW *win,bool bf)
* 參數說明
1. win指向需要設置無延遲模式窗口的指針,bf決定開啟或關閉該模式
* 說明
* 半延遲模式與cbrak模式非常類似,所有用戶輸如立即被接受,但不同點在於如果一段時間內用戶沒有輸入,則輸入函數立即返回ERR
* 使用nocbreak()函數可以取消終端的半延時模式
* 無延遲模式主要用來控制終端的字符輸入. 它使得終端輸入函數由阻塞調用變成非阻塞調用
本文出自 “暗日” 博客,請務必保留此出處http://darksun.blog.51cto.com/3874064/1281961