Professional UI Solutions
Site Map   /  Register

Version 2.83 - June 10, 2008

Release Notes

Version 2.83 is a release with a number of new features, enhancements and bug fixes.

What's New

General Look and Feel

  • Added a CExtNSB template class that provides theme support for the CExtScrollWnd scroll bar window.
  • Added a CExtNCSB template class that provides theme support for any scrollable windows and common controls (see screenshot).
  • ProfSkin library now provides skin support for Prof-UIS grids and scroll bars (see screenshot1, screenshot2, screenshot3 and screenshot4).
  • Refactored the CExtNCW template class to make the non-client area of a window better consistence with Prof-UIS themes and fixed all the reported problems.

Common Controls

  • Added a CExtDateBrowserWnd control (see screenshot) that implements a date picker similar to that in Windows Vista.
  • Added support for a cue banner (watermark) in the CExtEditBase class (see screenshot), which is provided by the GetCueBanner() and CExtEditBase::SetCueBanner() methods.

Data Grid

  • Added cell merging capabilities to the CExtGridWnd class (see screenshot). The following methods allow you to merge/split both regular and header grid cells:
    • CExtGridWnd::GridCellJoinGet()
    • CExtGridWnd::GridCellJoinSet()
    • CExtGridWnd::GridCellJoinTest()
    You can learn more about how to merge/split cells from How to merge a group of grid cells?
  • Updated the SynchronizedGrids sample (download), which now demonstrates how to merge grid cells.
  • Added a CExtGCJ template class, which implements the cell merging functionality at the cell level. The CExtGCJ is applied to the CExtGridCellEx and CExtGridCellHeader classes, which means most of grid classes now support cell merging.
  • Added support for frozen columns and rows in the CExtGridWnd (see screenshot) and CExtTreeGridWnd classes (the latter supports only frozen columns). You can enable/disable/query frozen columns and frozen using the following methods of CExtGridBaseWnd, which is the base class for all Prof-UIS grids:
    • FrozenColumnCountLeftGet()/FrozenColumnCountLeftSet()
    • FrozenColumnCountRightGet()/FrozenColumnCountRightSet()
    • FrozenRowCountTopGet()/FrozenRowCountTopSet()
    • FrozenRowCountBottomGet()/FrozenRowCountBottomSet()
    Below are listed new constants defined in the CExtGridBaseWnd class, which allow you to determine if a grid cell belongs to a frozen column or/and row:
  • Added a CExtScrollItemWnd::OnSiwGetFrozenRange() virtual method, which returns the number of frozen columns and rows at each side of a grid window or a generic scrollable window.

Property Grid

  • Added the following properties to the CExtPropertyGridCtrl class to include/exclude particular parts of a property grid:
    • m_bCreateComboBoxBar
    • m_bCreateToolBar
    • m_bCreateTipBar
    • m_bCreateCategorizedGrid
    • m_bCreateSortedGrid
    • m_bEnableResetCommand
  • Added a CExtPropertyGridComboBoxBar::SynchronizeCurSel() method which updates the entire content of the tree grids in a property grid control to make it synchronized with the currently selected property store in the combo box.
  • Added a CExtPropertyValueSingleCell class that implements a special kind of the CExtPropertyValue property value object which contains only one CExtGridCell object in it. This grid cell object is used as both the active and default values. A property value based on CExtPropertyValueSingleCell cannot be reset so the Reset command in the context menu displayed over this property value is always disabled.
  • Added a CExtPropertyGridCtrl::PropertyValueSynchronizeSimple() method which allows you to synchronize only one property value in the property store that is currently displayed in the property grid control.

All Grids

  • Increased the number of text/background colors for highlighting different states of a grid cell. The CExtGridCell::e_cell_state_t introduces new states, which allows you to assign a text/background color to a cell in a particular state:
    • __ECS_HIGHLIGHT_BY_FOCUS (see screenshot)
  • Added the following methods to the CExtGridCell class, which makes it more convenient to manage cell colors:
    • AssignColors()
    • CompareColors()
    • ResetColors()
    • ResetColors()
    • SerializeColors()
  • Added a CExtScrollItemWnd::OnSiwGetReadOnlyBackgroundColor() virtual method that returns the default background color of a read-only cell.
  • Added an __EGCS_EX_INVISIBLE extended cell style, which when applied to a cell, hides its content so the cell looks as though it is empty, but if fact its data remains intact.
  • Added a __EGCPF_EXPANDED_CONTENT flag which allows you to change the way the text in the content expand window over a grid cell is drawn when the following virtual methods are called:
    • CExtGridCell::OnPaintForeground()
    • CExtGridWnd::OnGridHookCellPaintForeground()
  • Added a CExtGridBaseWnd::OnGbwResizingAdjustHtInfo() virtual method that allows you to cancel column or row resizing when needed.
  • Added a CExtGridCell::OnParseAutoEditStartText() method that is invoked when the user starts editing a grid cell and the in-place editor has not yet created for it. The method allows you to validate what character the user entered and, if needed, cancel editing. For example, there is no point in editing a numeric cell, if the user typed a letter. A new __EGCS_EX_NO_VALIDATE_AUTO_EDIT_TEXT extended grid cell style disables this validation.
  • Added a CExtGridCellFile::GetFile() virtual method that is called to show a File Open or a File Save As dialog box.
  • The CExtGridCellCheckBox class now allows you to change the text associated with the checked, unchecked and indeterminate states of a check box cell (see the CExtGridCellCheckBox::LabelTextGet() and CExtGridCellCheckBox::LabelTextSet() methods).
  • Added a CExtGridCellBool::g_strTextIndeterminate static property which contains the default text value displayed in a boolean cell when it is in the indeterminate state.
  • Added OnQueryBackColor() and OnQueryTextColor() virtual methods to the CExtComboBoxBase class for querying the text and background colors of a combo box.
  • Changed the signatures of the following methods so their new parameters now specify the location of a cell:
    • CExtGridCell::OnQueryEnabledIncrement()
    • CExtGridCell::OnQueryEnabledDecrement()
    • CExtGridCell::OnValueIncrement()
    • CExtGridCell::OnValueDecrement()
    • CExtGridCell::OnQueryButtonInfo()
    • CExtGridCell::IsButtonEnabled()
    • CExtGridCell::IsButtonPressed()
    • CExtGridCell::IsButtonStayPressed()
    • CExtGridCellVariant::OnValueIncrement()
    • CExtGridCellVariant::OnValueDecrement()
    • CExtGridCellComboBox::_DoItemsIterate()
    • CExtGridWnd::OnGridHookCellQueryEnabledIncrement()
    • CExtGridWnd::OnGridHookCellQueryEnabledDecrement()
    • CExtGridWnd::OnGridHookCellValueIncrement()
    • CExtGridWnd::OnGridHookCellValueDecrement()
    • CExtGridWnd::OnGridHookCellQueryButtonInfo()
  • Now the cell's in-place editor supports auto-sizing, which can be turned on by applying two new extended styles to a cell: __EGCS_EX_AUTO_SIZE_INPLACE_CONTROL and __EGCS_EX_WRAP_TEXT . When the user is typing some text in a cell with __EGCS_EX_AUTO_SIZE_INPLACE_CONTROL applied, the text editor increases its width to fit the text. When the user presses the Enter key when editing a cell with both __EGCS_EX_AUTO_SIZE_INPLACE_CONTROL and __EGCS_EX_WRAP_TEXT styles applied, the in-place editor increases its height.
  • Added a __EGCS_EX_NO_INPLACE_CONTROL_SELECTION extended style, which makes the text in a cell unselected when the user starts editing the cell.


  • The CExtCustomizeCmdTreeNode::m_iconCustomized property is now public. This icon object contains the current icon of a command tree node. So you can now customize the icon of any command tree node from outside of the classes representing command tree nodes.
  • Added support for the SC_CONTEXTHELP button in the window caption for the Office 2007 paint managers.
  • Added a __ERGS_ENABLE_DEACTIVATION_OF_LAST_COLUMN report grid style. If applied (by default), this style does not allow the user to remove the last column that remains after the user removed all other columns from the report grid control.
  • Improved the scrolling behavior of the CExtScrollBar control on first click.
  • Updated the documentation

Bug Fixes

  • Fixed an incorrect background color in the group rows of the CExtReportGridWnd when any non-Luna theme is applied on Windows XP.
  • Fixed a bug in the CExtTreeGridWnd class that caused a crash when you sorted an item with child items.
  • Fixed a bug in the in-place editor when you could not change the value of a grid cell correctly by using a mouse wheel.
  • Fixed a bug in the color pop-up menu. When you pressed the Enter key over the Customize Color button, the color was reset to Empty instead of opening the custom color selection dialog.
  • Fixed a bug that caused an incorrect location of a window with a skinned non-client area when the window was in the maximized state.
  • Fixed a bug with an incorrect height of items in the pop-up menu displayed from a CExtGridCellFontFaceName cell.
  • Fixed a potential bug in the Date Time and Duration controls when an empty cell could cause a crash if you used arrow keys (which in fact changed the current field selection).
  • Fixed a bug in the CExtDateTimeWnd control when you encountered an incorrect size of the drop-down calendar in some cases.
  • Fixed a bug with an incorrect background color of the tooltip over a cell.
  • Fixed a bug when drag-and-dropping a control bar caused a skinned frame window to become inactive in some cases.
  • Fixed a bug in the CExtComboBox class when if no item was not initially selected, you could not select any item using the keyboard down arrow key.
  • Fixed a bug when you could not correctly update text in the focused cell by pressing Ctrl+V when the in-place editor was inactive.
  • Fixed incorrect menu shadows in the case when the Office XP theme was applied and the 256 color mode was used.
  • Fixed a bug in the ribbon when the Maximize, Minimize and Close buttons in the caption of an MDI child frame window did not appear in some cases.
  • Fixed some other minor bugs.
Previous: Version 2.82