2

嗨,我想知道如何将图像插入窗口但带有坐标。

(define ventana (new frame%
                   [label "Ba"]
                   [width 1100]
                   [height 600]))


(define tablero-panel (new horizontal-panel%
                             (parent ventana)
                             ;(label "Group Box Panel")
                             (alignment   '(left top))
                             (min-width 500)
                             (min-height 500)
                             (stretchable-width #f)
                             (stretchable-height #f)
                             ;(spacing 100)
                             ;(vert-margin 100)
                             ;(horiz-margin 500)
                            ; (border 50)

                             )
  )

我需要该图像在窗口框架中,但在某些坐标中

插入我在此页面上找到但我无法协调它们可以在 xy

球拍博士中的位图

4

1 回答 1

1

您正在尝试做的是违背 gui 库的纹理。GUI 库的设计是您主要将布局控制权交给它,而不是尝试自己控制它。请参阅几何管理

如果您想更好地控制绘制的位置,您可以使用单个canvas%实例创建一个框架,然后在其中绘制您想要的任何内容。您可以使用画布的绘图上下文 (the ) 的绘制位图。dc

例如:

#lang racket/gui
(require net/url)


(define f (new frame% 
               [label "Test"]
               [width 500]
               [height 500]))

(define bm (make-object bitmap% (get-pure-port
                                 (string->url "http://racket-lang.org/logo.png"))))

(define pos 0)

(define mycanvas%
  (class canvas%
    (super-new)
    (inherit get-dc)
    (define/override (on-paint)
      (let ([my-dc (get-dc)])
        (send my-dc draw-bitmap bm pos pos)))))

(define c (new mycanvas% [parent f]))

(send f show #t)

(void
 (thread (lambda ()
           (let loop ()
             (set! pos (add1 pos))
             (send c refresh)
             (sleep 1/20)
             (loop)))))
于 2013-06-06T05:18:46.227 回答