skinnable application

A

Alain R.

Hi,

I would like to understand the process of a skinable application.
I mean i know that there are some pictures stored into a file and
application use them.
But what i would like to understand it's the solution itself like :
- is it better to have each picture in a separated file, or several
different images can be in 1 file (as winamp for example) ?
- if several images are in 1 file, how to select the right one ?
- when to apply image to control ? only on wm_paint msg raising ?
and so on...

if someone has a good link or tutorial for me i would be happy.

thanks a lot,

A.
 
P

pedrito

Skinning, essentially requires custom controls. To my knowledge, there's no
way to do it otherwise, short of hijacking the WM_PAINT messages for every
control, but that could be very problematic, I would imagine.

So the implementation depends on the control library used. If you google
around, I'm sure you'll find some. But I'd assume that generally there's a
bitmap for the background of the window and then separate bitmaps for each
control (possibly more than one for some, to represent multiple states) .
 
D

David Pendrey

Most skins I've seen just do things like add images onto some buttons,
add a background image, move the position/size of controls, and change
around the colour scheme. All of this should be done fairly easily with
the existing controls.

The kind of thing I'd be looking for would be something along the lines
of a text file with for format of:
<Control Name>,<Property Name>,<New Value>

Then you can parse the file line by line, use .Split(',', 3) to get your
three values then
Controls[<Control Name>].PropertyName = NewValue

Bit more coding involved than just that obviously but it should get a
whole lot done (font, colours, background pics on the form and buttons).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top