The current version (V3.0 beta) does not need skinbuilder, the next version will provide one.
As we know, Windows XP adds support for themes for applications. When we change the Windows theme, all the Windows standard applications change into the same theme. How can we add skin support to our own software and make our software different from others? Here, I suggest a way: use the
- Saves your development time. You don't have to care too much about your software UI. After finishing your functions, add three lines of code to support a skin. It's very easy, and will save you time.
- Makes your app look and feel good:), that's it.
- Supports color themes. This can make a skin file look like a 100 different skins. Save your UI design time.
USkin provides a free version. Save your money!
- Free powerful SkinStudio included that you can use to design your own skin file.
- Supports more than 20 Windows standard controls
- Supports system standard dialogs, such as file dialogs, color dialogs, print dialogs
- Supports custom defined controls/third party controls
- Supports WYSIWYG style skin file editing
- Supports MDI/SDI/Dialog style apps
- Supports window blinds skin file importing. More than 10000 skin files can be used
- Supports color themes
- Supports VC/SDK/VB/.NET, no language limitations
- Supports multithreading
- Supports changing skin at runtime
- Supports all popup menus, including the edit control context menu!
- Only two lines required to add skin support
- Supports all scrollbar skins
- Small skin file size, around 30 KB
Using the Code
USkin functions is very easy. Let's begin.
First, include the USkin.h file in your app:
Then, in the
InitInstance function, call
USkinInit to initiate the
pDocTemplate = new CSingleDocTemplate(
In the end, call
USkinExit before your app exits:
Using the Code in .NET
The sample code is in C#. You can easily change to other .NET languages. OK, let's begin. First add USkinSDK.cs to your project. Then in the
Main entry, add one line of code like this:
static void Main()
USkinSDK.USkinInit("", "", "..\\Skins\\DiyGreen.msstyles");
For skinning the
RadioButton) object correctly, you need to change the
FlatStyle property into
The resulting screen will look like this:
Points of Interest
This article does not focus on the technical side of the implementation. If you want to know how it works, you can try these CodeProject articles:
- Updates in version 3.0 beta [2008-11-10]
- New render engine. I rewrote the core render engine such that it is faster, of high quality, and safer.
- Added Microsoft Window's Theme file format (*.msstyles) support. The user does not need to convert or edit the skin file. There are many skin files to use.
- Added Multi-Monitor support.
- Fixed USkin2.2 known bugs.
- Removed custom draw functions in this version because it was using the Microsoft theme file.
- Updates in version 2.2 [2006-08-07]
- Fixed the menubar update error.
- Added the
USkinUpdateMenuBar function. When the user modifies the menu by
USkinGetMenu, the user should call
USkinUpdateMenuBar to update the menubar.
RightToLeft text support.
- Added Winamp like player sample.
USkin file format compatible.
- Enhanced the
SkinBuilder Help document.
- Added multilanguage support to
- Updates in version 2.1
- Fixed the
MultiLine style in
- Added .NET skin support. Now you can use
USkin with your .NET applications!
- Added a new library called
USkinCom. Easy for .NET use.
- Added two C# samples. One is MDI, the other is SDI. You can see the power of
USkin in these samples.
- Added color replace feature. Now, you can replace standard system colors.
- Enhanced the
USkinApplyColorTheme function. Everything will change when calling the
- Added the
USkinDrawFrameControl function to replace the standard
- Added six skin files to the pack. All skin files are carefully edited.
- Enhanced many functions.
- Thanks to The Code Project for providing a good platform for developers
- Thanks to you guys who use
- Thanks AlecJames - He found a multi-monitor bug. Sorry man, I took a long time to make v3.0
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.