Introduction

Welcome!

We are very happy to announce that we have made the decision to offer our commercial lineup of MFC libraries, including Ultimate Toolbox, Ultimate Grid, and Ultimate TCP/IP to The Code Project community free of charge.

These are the full and complete libraries including source code, documentation, samples and examples.

Ultimate Toolbox, Ultimate Grid and Ultimate TCP/IP come with full source code, and are compatible with Microsoft Visual Studio versions 6.0 through 2005.

The Ultimate Toolbox and line of related MFC libraries products have been powering professional MFC applications for more than 10 years. We realize that there is a very large number of users who are still coding new applications in Visual C++ and MFC and who are looking for effective and proven libraries to enhance their applications, as well as those with legacy code to maintain and update.

By releasing these long standing MFC libraries to The Code Project community we hope that the libraries will continue to grow, evolve and provide a library of useful controls to the development community through the auspices of The Code Project and its members.

Contents

Categories

The Ultimate Toolbox forms an extensive collection of classes dealing with many aspects of Windows programming. We have organized the samples and documentation into the following categories - each category page lists the main classes available in that group, and some will contain a link to sample accompanying short article. (Note that most of these are short overviews distilled from the existing documentation - for full class references, refer to the compiled HTML help documentation download.)

Ultimate Toolbox Features

Extended MFC UI Controls

Controls that we derived from existing MFC controls and improved upon. These include components such as:

  • Office 2003-like and Office XP-like look and feel
  • Shortcut bars.
  • Extended combo boxes.
  • Extended tree controls, including an option tree.
  • Masked edit controls - generic and specialized

Classes Extending the MFC UI Framework

These classes expand upon the document-view framework, and provide enhanced functionality such as:

  • Customization classes that let your users customize the UI of your application (e.g. the creation/modification of toolbars, menus, etc.).
  • Cool tool bar classes, letting you easily add controls to your toolbars (drop lists, check boxes, edit controls, etc.).
  • Cool menus, like cool toolbars, allow you to quickly provide advanced functionality to your menus (e.g. display icons/bitmaps).
  • Docking windows classes that give your docking windows the functionality and feel of Microsoft applications (e.g. Office 2000).
  • Tab view classes that let you display tab views using a wide variety of styles, such as Hot Track, Multi-line and Positioned (left, right, etc.) tabs.

Utility and Shell Extension Classes

These classes can enhance your applications by letting you retrieve system information, implement trace/debugging features, use sound effects, and perform other utility-related operations with ease. Examples of these utility and shell extension classes are:

  • A system information class.
  • Advanced trace and assert classes.
  • Sound effects class.
  • XML file parsing class.
  • Resource file modification and view classes.
  • Data Compression class
  • Task bar and Application bar classes.

Graphics Classes

These classes let you display graphics (e.g. BMP, JPEG, etc.) with ease, and the kit also comes with JPEG compression and metafile creation/playback classes. Some examples are:

  • JPEG compressor and de-compressor libraries.
  • DIB manipulation/conversion classes.
  • Metafile classes that come with Ultimate Toolbox provide functionality to load all standard formats of Metafiles (*.wmf, *.emf) from either disk or resource, play back loaded metafiles, and even create new ones.

Configuration

Layout

We've split up the code, samples and documentation of the Ultimate Toolbox into separate ZIP files, to make updates easier.

In general, for a code library such as the Ultimate Toolbox, installation files are a cumbersome nuisance. While they do allow the formality of license agreement acceptance, and are expected of a commercial offering, for our purposes it would be too much trouble to update an entire install in order to accommodate a small update to a core source file or sample - we may in the future provide updates in various formats, from a single class to an entire new distribution as situations warrant. And, of course, the CP community is more than welcome to contribute.

The samples and library projects all reference relative paths with respect to source and include files, and should compile 'out of the box' if the ZIP files are extracted to a common directory - by default, Ultimate Toolbox, which should look more or less like this:

Getting Started

Once the main source and sample distribution is installed, you'll find that most of the samples can be built and run without the need to build any libraries or DLLs. This source code download has been stripped of some of the pre-built libraries that were shipped with previous commercial installations in order to conserve bandwidth - notably the proprietary JPEG libraries, which should be built ( Ultimate Toolbox\lib\JPEG\jpg.dsw ) before building the samples that reference it and the static libraries or DLLs. The jpg VC6 workspace should convert and build without problem with Visual Studio .NET or 2005, and the resulting libraries placed in the Ultimate Toolbox\lib\Libs directory. The static libs and DLL builds in the lib\Build Libs and lib\Build DLLs can then be built.

The static library is handy when using one of the frameworks (docking windows or app customization), but many classes can be easily used directly in your project with the addition of only one or two source and header files - season to taste. For the most part, except for samples that show the use of the DLL or static lib, the samples use the source directly allowing for direct debugging and testing as the need arises.

The CHM DOC file will provide more detailed information on each of the classes and their interfaces, and has an index and full text search - great for 'hmmm... I wonder if there's a class for...' type scientific explorations.

Community Support

Support for the products will be community based, and will include participation from core developers of the products, long standing and informed users of the products, and other members of the CodeProject.com community.

Licensing

It is our intention that you be able to use the libraries in any manner you wish, however, specific details of licensing rights, limitation of liability, and other details are included both here, and in a license.txt file included with the downloadable packages

History

August 2007 - Ultimate Toolbox Version 9.3 forms the initial CodeProject community release.

Version 9.3

New:

  • The Hyperbar classes provide an easy way to add some cool UI functionality to any existing or new project that uses a toolbar.

Bug Fixes:

  • Missing VS2003 static lib build project files reinstated.
  • Vista problems with 'shadow window' rendering addressed.
  • OXSkins - it's now possible ( and preferred ) to specify the desired skin using an enum
  • The CustomiseManager sample has a minor bug fix, which caused a very rare crash
  • OutlookStyleDemo : Added ability to change skin type at runtime, and improved overall skin support.
  • COXBItmapMenu : Fixed bug which caused documents to close when dirty without prompting
  • COXFrameWndDock::MakeItDockable : Can now specify which sides to support and if we should dock immediately
  • COXFrameWndDock::AttachMDIChild : Allows users to specify the side to dock to, before it would dock to the first one that was available. Also fixed some docking bugs in this class.
  • COXListEdit : Added code to send a message to indicate editing has ended when the drop button is pressed.
  • COXPropertyTree : Added code to send a message to indicate editing has ended when focus is lost.
  • Moved all the skinning drawing into seperate classes, so they are all handled polymorphically by the toolbox controls.
  • COXSizeDockBar::TabAllDockedControlBars : Added code so that the visible bar can be selected, via a pointer or by index.