[racket-dev] nice way to show a bitmap in a frame?
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
>