About Visual Face Lift

Background
If you've been around long enough to remember Windows 3.1 before 3d controls, then you probably remember Borland's user interface addon. This was a DLL that you would add to your program that would give your dialogs much more interesting buttons. It was major-hot, and Microsoft came out with their answer, the CTL3D.DLL, which gave us the dialogs and UI that we are familiar with today. With Windows 95, NT4, then 98 and now NT5, this DLL is part of the system called CTL3D32.DLL. It still does all the same stuff, but now has a lot of what Internet Explorer does - mouse over effects, fancy toolbars, etc. It really isn't all that hard, no matter what other people might say - Windows provides all the API hooks you need for this to work, and all the messages (WM_NCPAINT, etc) are reasonably well documented on MSDN. The only fiddling around that needs to be done is overcoming some of the internal functioning of Windows for each action - there is a fair amount of duplicating the mechanics of the controls.

What Visual Face Lift does is to allow you, the programmer, to decided what graphics, fonts, and colors to use for the dialog and window display. This is called a SKIN. The Skin is used to define not only how the item looks, but how it behaves and the placement (called the "adjustments") of the window item. If you've seen some of the "skinnable" programs or games, then you're probably seeing this kind of programming in action. Windows XP is the current "classic" example of Skinning - they call this feature a "theme". With Visual Face Lift, you can get this kind of action within your own applications, without requiring Windows XP. With a few lines of code in your InitInstance, WinMain, or FormLoad you're up and running. The Visual Face Lift engine takes care of all the work for you. You do not need to change any of your own code to make use of the Skins, and you can develop and test as you normally would. Graphic artists who specialize in skin design, and some talented hobbyists, can make you a set of skin bitmaps that will work with Visual Face Lift, or convert one of their current works for you. Be sure to read the legal page about this and related issues.

What is a Skin?
"Skin" comes from various first-person shooters, such as Unreal, Quake, Half-Life, and Tribes (and more), where you have the ability to load a set of graphics in to change the appearance of your player. Usually, these consisted of new uniform types or various muscle-bound fighter classes. With some games, such as Doom and Doom II, you could load in patches (precursors to skins) that would alter the appearance and effects of the weapons, such as the rubber chicken launcher for Doom, or the appearance of the enemy monsters.

However, to some extent, Windows has always had some form of "skinning" available for it, if you consider changing the Wallpaper and the "theme" of control color and sizes a skin - these do change the visual appearance of the system without affecting what the controls do.

Since then, the word "skin" has expanded to cover the practice of creating images for use in a program's interface, usually under Linux and other flavors of Unix, which they have had for some time. Most programs running under Windows use the standard buttons and controls that Windows provides. There are good reasons for this. For one, it allows users to easily recognize buttons and controls for what they are. A menu looks the same in any program, and the knowledge gained in learning how to use a menu in one program can be used in using a menu in another program. Since the programmer does not have to spend time writing window control code, in theory they can spend more time making the program better.
However, the problem with standard Windows controls is that they are standard, which leads to interfaces which are visually boring. Everything looks the same, and nothing really visually sets programs apart. To overcome this, many programmers are now "skinning" their programs. More and more programs are now using interface skins in order to make their software more attractive and visually inviting to the user. Users appear to enjoy working with an interface which is both visually rich and interesting. If they like and enjoy the looks of the program, they will obviously spend more time in the program, and get more out of it. In addition, many web sites that offer a collection of shareware or trialware programs to download often have screenshots of the program (just like a printed magazine and store boxes do), and users will almost always go for the screenshot that looks interesting – and a visually appealing skin does that.

Skins do not need to radically redesign the layout of the window; if the standard windows control buttons are always in the same position where the usually are, then the user can benefit from both the learned process of smacking the X box to close, and get the visual pleasure of the graphic at that spot – say a green icky face instead of a simple X. Or more usually, a "themed" X graphic that matches the rest of the interface, like a metallic blue box.


Updated: Thursday, Sep 18, 2008
Contents copyright © 1999-2003 by NOPcode.com and its subsidiaries. Reproduction in part or in whole prohibited unless explicitly granted. All information and products, be it documentation, essays, source code, programs, or installs, are provided "as-is" and neither the author nor NOPcode.com will be held responsible for any resulting damages, either physical or mental. No warranty is expressed nor implied. All rights reserved. All trademarks used are property of their respected companies. For further information contact .