2 curses库IO处理--光标操作

本文详细介绍了curses库中的光标操作方法,包括物理光标与逻辑光标的区别,以及如何通过move()和mvcur()函数进行光标移动,并提供了curs_set()函数来调整光标的可见性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.5 光标操作

=============


2.5.1 光标说明

---------------

   * curses库中光标分为物理光标和逻辑光标.物理光标只有一个,而逻辑光标属于curses窗口,每个窗口只有一个物理光标但却可能有多个逻辑光标

   * 物理光标位置会在处理输入函数之后发生改变,但可以通过WINDOW结构的_leave标志重新定位它

     * 如果设置了_leave标志,在输入结束后,逻辑光标将会移动到物理光标指向的窗口中最后写入的区域.

     * 如果没有设置_leave标志,在输入操作结束后,物理光标将返回到逻辑光标指向窗口的地一个字符移动位置

     * _leave标志由leaveok()函数控制的


2.5.2 光标移动函数

-------------------

/**
@brief 移动逻辑光标到指定的位置
@param x x坐标,表示移动后位置所在的行数
@param y y坐标,表示移动后位置所在的列数
 */
int move(int x,int y);
/**
@brief 移动物理光标到指定位置
@param last_x 移动前光标所处的行位置
@param last_y 移动前光标所处的列位置
@param new_x 移动后光标所处的行位置
@param new_y 移动后光标所处的列位置
@note mvcur()不用等待屏幕刷新就会立即生效
 */
void mvcur(int last_x,int last_y,int new_x,int new_y);
/**
@brief 设置物理光标的状态
@param visibility 物理光标的状态
       0  隐藏
       1  正常
       2  高亮显示
 */
int curs_set(int visiblility)


本文出自 “暗日” 博客,请务必保留此出处http://darksun.blog.51cto.com/3874064/1286703

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值