[racket-dev] nice way to show a bitmap in a frame?

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Sat Mar 19 11:07:16 EDT 2011

message% can take a bitmap as the label, I believe.

Robby

On Sat, Mar 19, 2011 at 10:01 AM, John Clements
<clements at brinckerhoff.org> 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
>



Posted on the dev mailing list.