我正在使用 DrRacket 5.3.4
有框架f,画布c
我将滚动条设置为画布。
我想获取图像的坐标(不是主窗口,框架的左上角相对坐标)
如何获得图像的 x 和 y?
简而言之,滚动条被移动了,所以我可以看到 x 和 y 从 90、90 到 290、290 的图像区域。
这时,我将鼠标移到窗口的左上角。并得到 0,0。
但我想得到 90,90。
我怎样才能做到这一点?
谢谢!
#lang racket/gui
(require racket/draw)
(define f
(new frame%
[label "hey"]
[width 200]
[height 200]))
(define img (read-bitmap "some_image.png"))
(define img-w (send img get-width))
(define img-h (send img get-height))
(define (pcb c dc)
(send dc draw-bitmap img 0 0))
(define my_c%
(class canvas%
(define/override (on-event e)
(printf "x: ~a y: ~a \n" (send e get-x) (send e get-y)))
(super-new)))
(define c (new my_c%
[parent f]
[style (list 'hscroll 'vscroll)]
[paint-callback pcb]))
(send c init-auto-scrollbars img-w img-h 0 0)
(send f show #t)