如何使用getch()ncurses获取Ctrl,Shift或Alt?

前端之家收集整理的这篇文章主要介绍了如何使用getch()ncurses获取Ctrl,Shift或Alt?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何使用getch()ncurses获取Ctrl,Shift或Alt?
使用ncurses,使用getch()获取Ctrl,Shift或Alt是不行的?我想念那个男人的东西吗?

解决方法

令人惊讶的是,有时正确的答案会被降级,而“权威性”放弃的答案会得到提升……有了一点创造力,key_name实际上掌握了解决这个问题的正确关键,有一点需要注意 – SHIFT / ALT / CTRL是同时按下其他键:

>首先,对于诸如可打印的“普通键”,您可以轻松检测到移位,因为它是大写的.
>对于特殊键,例如KEY_LEFT,您将看到选择SHIFT时生成代码实际上是KEY_SLEFT.同上KEY_RIGHT.不幸的是,KEY_UP / KEY_DOWN没有这样的运气,SHIFT似乎并不担心.所以你可以通过getch()返回的char来区分 – KEY_S ..意味着按下了shift.
>对于ALT(至少没有被X或Aqua Windowmanager困住),keyname会将键转换为M ……某事.
>对于CTRL,您将在实际的键名前面加上“^”. E.g ^ R代码18

因此,您现在可以通过一个简单的代码段找出switch(getch)语句的关键代码等:

ch = getch(); endwin(); printf("KEY NAME : %s - %d\n",keyname(ch),ch);

就是这样.在明确地说“不能”之前先想想.也许有一种不太明显的方式.

原文链接:https://www.f2er.com/html/232153.html

猜你在找的HTML相关文章