Klein 发表于 2023-2-22 15:16:46

如何捕捉用户输入Tab键

本帖最后由 Klein 于 2023-2-22 15:17 编辑

有一段程序基本功能是绘制一个图形,用户选点后将图形插入到这个点。

需要实现的功能是:用户选点之前,按Tab键可以实现图形旋转90°(可连续按Tab)

或者说,用哪个函数可以捕获用户输入的Tab?


自贡黄明儒 发表于 2023-2-23 07:11:25

(setq loop T)
(while loop
(setq code (APPLY 'grread LST))
(cond
    ((= (car code) 5)   NIL )                                       ;;; 鼠标移动
    ((= (car code) 3)   (SETQ LOOP NIL CODE (CADR CODE)))         ;;; 鼠标左键
    ((= (car code) 11)    (SETQ LOOP NIL CODE NIL))                   ;;; 鼠标右键,右键设置为回车时
    ((= (car code) 25)    (SETQ LOOP NIL CODE NIL))                   ;;; 鼠标右键,右键设置为屏幕菜单时
    ((equal code '(2 0))(SETQ LOOP NIL CODE "CTRL-@"))            ;;; CTRL-@
    ((equal code '(2 1))(SETQ LOOP NIL CODE "CTRL-A"))            ;;; CTRL-A
    ((equal code '(2 2))(SETQ LOOP NIL CODE "CTRL-B或F9"))          ;;; CTRL-B或F9
    ((equal code '(2 3))(SETQ LOOP NIL CODE "CTRL-C或F12"))         ;;; CTRL-C或F12
    ((equal code '(2 4))(SETQ LOOP NIL CODE "CTRL-D或F6"))          ;;; CTRL-D或F6
    ((equal code '(2 5))(SETQ LOOP NIL CODE "CTRL-E或F5"))          ;;; CTRL-E或F5
    ((equal code '(2 6))(SETQ LOOP NIL CODE "CTRL-F或F3"))          ;;; CTRL-F或F3
    ((equal code '(2 7))(SETQ LOOP NIL CODE "CTRL-G或F7"))          ;;; CTRL-G或F7
    ((equal code '(2 8))(SETQ LOOP NIL CODE "CTRL-H或退格"))      ;;; CTRL-H或退格
    ((equal code '(2 9))(SETQ LOOP NIL CODE "CTRL-I或TAB"))         ;;; CTRL-I或Tab

Klein 发表于 2023-2-23 10:00:29

自贡黄明儒 发表于 2023-2-23 07:11
(setq loop T)
(while loop
(setq code (APPLY 'grread LST))


感谢大师提点,果然还是用到grread
有了这段代码,用调试的办法基本就知道所有击键动作如何去捕捉了~
页: [1]
查看完整版本: 如何捕捉用户输入Tab键