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)