You could use `message%' with the bitmap as its label: #lang racket/gui
(define bitmap (read-bitmap "/tmp/red-arrow.bmp")) (define f (new frame% [label "Bitmap"])) (new message% [parent f] [label bitmap]) (send f show #t) At Sat, 19 Mar 2011 08:01:22 -0700, John Clements wrote: > Someone on stack overflow just asked how to draw a bitmap to the screen, and > I > couldn't think of an easier way than the following code. Am I missing > something obvious? An existing bitmap-canvas% class, or something like it? > > John > > > #lang racket > > (require racket/draw > mred) > > ;; define a canvas that displays a bitmap when its on-paint > ;; method is called > (define bitmap-canvas% > (class canvas% > (init-field [bitmap #f]) > (inherit get-dc) > (define/override (on-paint) > (send (get-dc) draw-bitmap bitmap 0 0)) > (super-new))) > > ;; load the bitmap > (define bitmap (read-bitmap "/tmp/red-arrow.bmp")) > > ;; create a new frame (top-level window) > (define f (new frame% [label "foo"] [width 100] [height 100])) > > ;; create a canvas > (define the-canvas (new bitmap-canvas% [parent f] [bitmap bitmap])) > > ;; show the canvas > (send f show #t) _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev