plt-scheme:在画布上捕捉鼠标点击事件

时间:2010-02-02 06:43:46

标签: project variable-assignment racket

我正在以plt-scheme编写一个井字游戏作为我的AI课程项目。 gui的想法是一个有9个盒子的网格,每个盒子都有一个画布,使用窗格...... 当用户点击画布时,将相应地绘制“X”或“O”......

问题是如何在画布上捕捉鼠标点击事件? 我发现我需要使用事件,但仍然不知道如何? 有线索吗?

2 个答案:

答案 0 :(得分:2)

好的,我明白了......

(define canvas-box%
  (class canvas%
    (define/override (on-event e)
           (when (equal? (send e get-event-type) 'left-down) (foobar-callback)))
    (super-new)))

答案 1 :(得分:0)

我得到了所有鼠标和键盘命令,可以在任何地方使用  这里。

(define my-canvas%

(class canvas%
  (define/override (on-event event)
    (and 
        (send test reader (list (number->string (send event get-x))
                     (number->string (send event get-y)) ))
        (send test reader (list (send event get-event-type)))))
(define/override (on-char event)
  (define pressed (send event get-key-code))
   (if (char? pressed) (send test reader (list (make-string 1 pressed))) '()))  
  (super-new)))

(define tester%
 (class object%
  (super-new)
  (define command '())

  (define/public (reader x)
    (and (set! command x)
         (display x))
   )
  (define/public (outer)
    command)
  ))