Professional UI Solutions
Site Map   /  Register

Version 2.53 - March 22, 2006

Release Notes

Prof-UIS 2.53 is an intermediate (minor) version. It is available both as an installer and as a zip file with source code and documentation in the download section.

The major changes include greatly improved image/icon support (Vista/XP icon quality on any Windows OS, an enhanced algorithm for generating hovered, pressed and disabled images, and, alternatively, each of these images can also be set explicitly), new cell classes, and the updated Integration and Application wizards. There are so many other new features and enhancements in Prof-UIS 2.53 that, in fact it, it may have been ranked as a major release if all the new features had been documented.

The help is updated mostly in terms of enhanced compatibility with the Visual Studio .NET documentation style. All the changes and new features since Prof-UIS 2.50 will be documented in the next major release.

What's New

General Look and Feel

  • Completely renewed the CExtCmdIcon and CExtBitmap classes, which are now based on a 32-bit bitmap with alpha channel. The icons, used everywhere in menus and toolbars, now have the Windows Vista/XP icon quality on any Windows OS starting from 95/NT4 (e.g., see a screenshot of 32-bit icons on Windows 98)) . The renewed icon class also features an enhanced algorithm for generating hovered, pressed, and disabled images. Alternatively you can specify these images explicitly.

    The CExtCmdIcon class, when the Studio 2005 theme is applied, produces smooth alpha icons with the hue adjustment for disabled icons. These disabled icons under this theme on Windows XP running the system default blue Luna theme now feature a blue color accent exactly like in Visual Studio 2005.

    Please note that HICON handles are not more used in it anymore, which completely solves the potential problem of a limited number of GDI objects on Windows OSes. According to Microsoft,
    "Windows NT-based computers are limited to 10,000 Graphics Device Interface (GDI) handles per process. Windows 9x-based computers are limited to only 1,200 GDI handles for the whole system. In some versions of Windows, the limit is 640 GDI handles, and all applications must share these GDI handles. For example, the Japanese version of Windows Millennium Edition has a limit of 640 GDI handles."
    This is especially important for enterprise-class applications with a large number of user interface objects.

    There are lots of changes with regard to the renewed icon support. The following CExtCmdIcon-related methods were added:
    • CExtPageContainerWnd::PageInsert()
    • CExtPageContainerWnd::PAGE_ITEM_INFO::IconSet()
    • CExtTabPageContainerWnd::PageInsert()
    • CExtTabPageContainerOneNoteWnd::PageInsert()
    • CExtPopupMenuWnd::MENUITEMDATA::GetIcon()
    • CExtBarButton::GetIcon()
    • CExtCmdProfile::CmdGetIcon()
    • CExtCmdManager::CmdGetIcon()
    The following CExtCmdIcon-related methods were removed:
    • CExtCmdManager::CmdGetHICON()
    • CExtButton::GetIconIn()
    • CExtButton::GetIconOut()
    The following CExtCmdIcon-related methods were overloaded:
    • CExtPageContainerWnd::PAGE_ITEM_INFO::IconGet()
    • CExtPageContainerWnd::OnPageContainerQueryItemIcon()
    • CExtGridCellComboBox::OnPopupListBoxQueryItemIcon()
    • CExtToolBoxWnd::OnToolBoxWndQueryItemIcon()
    • CExtToolBoxWnd::TOOLBOX_ITEM_DATA::IconSet()
    • CExtTabWnd::ItemIconGet()
    • CExtTabWnd::ItemInsert()
    • CExtPopupMenuWnd::ItemInsert()
    • CExtPopupMenuWnd::ItemInsertSpecPopup()
    • CExtPopupMenuWnd::MENUITEMDATA::SetPopup()
    • CExtPopupMenuWnd::ItemGetIcon()
    • CExtPopupMenuWnd::MENUITEMDATA::GetIconPtr()
    • CExtBarButton::GetIconPtr()
    • CExtCmdProfile::CmdGetIconPtr()
    • CExtCmdManager::CmdGetIconPtr()
    • CExtTabPageContainerWnd::PageIconGet()
    • CExtTabPageContainerWnd::PageIconSet()
    • CExtPopupMenuWnd::ItemSetPopupIcon()
    • CExtResourceManager::LoadBitmapEx()
    • CExtResourceManager::LoadBitmap()
    • CExtCmdManager::CmdSetIcon()
    • CExtCmdProfile::CmdSetIcon()
    • CExtCustomizeSite::OnGetCustomizedNodeIconPaletteInfo()
    • CExtBarColorButton::OnGenerateColorIcon()
    • CExtCustomizeSite::OnColorItemGenerateIcon()
    • CExtTabbedToolControlBar::BarInsert()
    • CExtShortcutListWnd::ItemInsert()
    • CExtButton::SetIcon()
    • CExtButton::OnGenerateColorBtnIcon()
    The following properties were changes:
    • CExtGridCellFontFaceName::g_IconFontTrueType
    • CExtGridCellFontFaceName::g_IconFontRaster

Data Grid, Property Grid and Report Grid

  • Added a CExtGridCellProgress progress bar cell class, which implements all features available in the standard progress bar control. Additionally the progress bar cell supports the following text formats: no text, user text, percent, position, text and position, and text and percent. You can also make the progress reversed, make the text tied and specify any color both for the text and the progress.
  • Added a CExtGridCellNumberBase class, which is a base class for numeric cells.
  • Added a CExtGridCellNumber numeric cell class, which formats a numeric value according to system locale settings. Alternatively, you can specify a custom format that is defined by:
    • Number of leading zeroes
    • Number of fractional digits
    • Negative number format
    • Size of each group of digits
    • Decimal separator
  • Added a CExtGridCellCurrency currency cell class, which formats a monetary value according to system locale settings. The class has the same feature set as CExtGridCellNumber, but you can additionally specify a monetary symbol and its position.
  • Added a CExtGridCellPercentage percentage cell class, which multiplies the cell value by 100 and displays the result with a percent symbol. You can additionally specify a position for the percent sign.
  • Added a CExtGridCellFraction fraction cell class, which displays the cell floating-point value as a fraction. Several fraction formats are supported.
  • Added a CExtGridCellScientific exponential cell class, which displays a floating-point number in the exponential form.
  • Added a CExtGridCellSlider slider cell class.
  • Added a CExtGridCellPicture picture cell class for displaying a bitmap in a cell. The bitmap can be stretched, tiled or aligned at any cell side. This cell class is based on CExtBitmap, which allows you to use a 32-bit bitmap with alpha channel.
  • Completely renewed the CExtGridCellIPAddress class, which now uses the standard IP address control as its in-place editor.
  • Added support for alpha channel (eRGBA, eRGBAName, and eRGBAHex constants) in the CExtGridCellColor cell.
  • Added a CExtGCF template class, which allows you to set a custom font for any grid cell by specifying the following font parameters: Height, Width, Weight, Italic, Underline, StrikeOut, Quality, and FaceName.
  • Added a __EGCS_EX_WRAP_TEXT extended cell style which wraps text into multiple lines in a cell (multiline cell). The number of wrapped lines depends on the column width and text size. The CRLF (\r\n) symbol is supported.
  • In-place editor now features the same text color, background color and font as in the cell for which it is invoked.
  • The CExtGridWnd class now supports measuring the size of the content of any cell, which allows you to do the best fit for a column and/or a row by adjusting its width/height in a variety of ways. The following methods and constants were added:
    • a set of __EGBS_BSE_EX_DBLCLK_BEST_*** constants (enables automatic column/row resizing when the user clicks a column/row header separator)
    • CExtGridCell::MeasureCell()
    • CExtGridCell::OnMeasureBestFitExtent()
    • CExtGridWnd::BestFitColumn()
    • CExtGridWnd::BestFitRow()
    • CExtGridWnd::OnQueryBestFitActionEnabled()
  • The CExtGridWnd class now supports automatic column/row sizing. The following methods and constants were added:
    • CExtGridCell::OnQueryExtentPercent()
    • CExtGridCell::ExtentPercentGet()
    • CExtGridCell::ExtentPercentSet()
    • CExtGridWnd::OnGridDoProportionalResizing()
  • Added HeightPxSet()/HeightPxGet() methods to the CExtPropertyItem, which allow you to set/get a custom height for the property item inserted into the property grid control (i.e. you can specify a custom row height in the property grid control).
  • Added LPARAM_Set()/LPARAM_Get() methods to the CExtPropertyItem, which allow you to set/get a custom value (e.g. a pointer to some object you wish to associate with the property item).
  • Added OnGridCellButtonPressing() and OnGridCellButtonPressed() virtual methods to the CExtGridWnd class. The methods allow you to handle the following events: when the button is clicked and not yet released (OnGridCellButtonPressing()) and when the button is released (OnGridCellButtonPressed()).
  • Added a OnQueryListSeparator() virtual method to the CExtGridCellColor class, with which you can specify a custom separator symbol that is used to separate the red, green, blue, and alpha in the color grid cell.
  • Added an alpha version of the report grid control (a CExtReportGridWnd class).
  • Added an alpha version of the ReportGrid sample.

Control Bars

  • Added AutoHideWidthSet()/AutoHideWidthGet() and AutoHideHeightSet()/AutoHideHeightGet() methods to the CExtControlBar class, which allow you to set/get a custom width and height for simple and dynamic control bars when it the auto-hide mode. By default, all the control bars have an equal width/height.
  • The toolbar separator is now exactly the same as in Microsoft Visual Studio 2005 IDE when the Visual Studio 2005 theme is enabled (see a screenshot).

Common Controls

  • The CExtComboBox class now supports a multicolumn pop-up list box with autofilter support. The enhanced combo box features an arbitrary number of columns. Besides you can set custom text and background color for any cell in the list box.
  • Added an OnPopupUndoRedoFormatCaption() virtual method to the CExtCustomizeSite and CExtBarUndoRedoButton classes, which allows you to specify custom text in the caption of the undo/redo popup list.
  • The CExtDateTimeWnd control now moves the selection forward by one item when you press the forward slash, dot, or comma key.
  • Added a SetBlank() method to the CExtDateTimeWnd class, which allows you to make all the fields blank.
  • Improved painting of the combo box drop-down button.
  • Added OnAdvancedPopupMenuTipWndGet() and OnAdvancedPopupMenuTipWndDisplay() methods and a m_nAdvacedTipStyle property to the CExtButton class, which allow you to use the advanced Prof-UIS tooltip in CExtButton buttons.


  • Native MSDN scripts are now supported.
  • Added Class Members pages.
  • Added the See Also section.
  • Updated some formatting.


  • Added a CExtPopupMenuTipWnd::GetText() method.
  • Implemented a workaround for the 4996 warning ( 'function' was declared deprecated ) in MFC version 8.00.
  • The Integration Wizard now features a new look and feel (it uses new Prof-UIS skinning capabilities).
  • With the Integration Wizard you can now build any supported library configuration for both Win32 and x64 platforms.
  • Application Wizard now allows you to create an application that is statically linked with Prof-UIS without any restrictions on resource-dependable features.
  • Localized to Belarusian, Bosnian, Farsi, and Hungarian. Many thanks to Alexander, Bahrudin, Majid, and Laura! Now, the total number of supported languages is 35 (including English).

Bug Fixes

  • Fixed incorrect drawing of the CExtComboBox control when the CBS_SIMPLE is enabled.
  • Removed unwanted flicker effects in the CExtComboBox control when its OwnerDraw property is set to true.
  • Fixed an invalid background color in the CExtEdit and CExtComboBox controls when they are disabled.
  • Fixed a bug in the CExtComboBox class when the CBN_DROPDOWN notification message was not sent to the parent window.
  • Fixed a bug related to an invalid non-transparent background of icons when running the desktop in 16-bit color mode.
  • Fixed a bug with an invalid font in the caption of the toolbar and control bar when switching to a large system font.
  • Fixed a bug when the current item in the pop-up list box of the CExtGridCellUpDownColorPart and CExtGridCellUpDownFontWeight cell classes was not selected.
  • Fixed a bug with anchoring an ActiveX control by its ID.
  • Fixed a bug in the CExtGridCellDateTime class when the time in the 12-hour format was displayed as in the 24-hour format.
  • Fixed a bug when the positions of a floating control bar were not correctly restored from the registry.
  • Fixed a bug when simple and dynamic control bars were not be able to be tab docked together.
  • Fixed a bug caused by read-only .NCB files when compiling Prof-UIS projects with the Integration Wizard.
Previous: Version 2.52