[wxruby-users] How to put a background image on a panel

Mario Steele mario at ruby-im.net
Mon Mar 23 09:20:53 EDT 2009


Remove the set_size from the on_erase_background(), you shouldn't use
set_size() in on_erase_background().

On Mon, Mar 23, 2009 at 5:19 AM, Trans <transfire at gmail.com> wrote:

> 2009/3/23 Mario Steele <mario at ruby-im.net>:
> > See:
> http://rubyforge.org/pipermail/wxruby-users/2009-January/004448.html
>
> Thanks. Though that only got me so far. I added:
>
>  class Backdrop < Wx::Window
>    def initialize(parent, image)
>      @parent = parent
>      @image  = Wx::Image.new(image)
>      super(parent)
>      evt_erase_background :on_erase_background
>    end
>
>    def on_erase_background(evt)
>      size = @parent.get_client_size
>      set_size(size)
>      @image.scale(size.get_width, size.get_height)
>      evt.dc.draw_bitmap(@image.to_bitmap, 0, 0, false)
>    end
>  end
>
> And then added an instance of it to my panel's boxsizer:
>
>      file  = (DIR + '/images/cover.jpg')
>      image = Backdrop.new(cover_panel, file)
>      cover_sizer.add(image)
>
> It draws the image initially but it isn't scaled for some reason and
> then when I resize the window it shrinks to a small square.
>
> T.
> _______________________________________________
> wxruby-users mailing list
> wxruby-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/wxruby-users
>



-- 
Mario Steele
http://www.trilake.net
http://www.ruby-im.net
http://rubyforge.org/projects/wxruby/
http://rubyforge.org/projects/wxride/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/wxruby-users/attachments/20090323/d3416cdf/attachment-0001.html>


More information about the wxruby-users mailing list