List View, Tree View and Common Controls Added a list view control (the CExtListCtrl class) with a themed header and themed scroll bars. It supports sorting through a new CExtListCtrlDataSortOrder helper class, which specifies sorting rules (see screenshot).
Added a themed header control (the CExtHeaderCtrl class) with state persistence, built-in buttons, icons and red drag-and-drop markers. The header control is positioned above the columns in the CExtListCtrl control (see screenshot).
Added a tree view control (the CExtTreeCtrl class) with themed items, hierarchical lines and scroll bars. It supports attached controls, check boxes, radio button groups, multiple item selection and disabled tree items (see screenshot).
Added a scrollable container window (the CExtScrollContainerWnd class), which allows you to make a resizable dialog scrollable when the latter is inside a small container or control.
Added a simple button control (the CExtIconButton class) displaying only an icon. Buttons of this type are used in the new Prof-UIS file dialogs mentioned below (see screenshot).
Added a basic edit control (the CExtEditWithBehavior class), which features controlling and validating text input.
Added a masked edit control (the CExtEditMasked class) (see screenshot).
Added a themed message box (the CExtMsgBox class), which additionally features an extended set of buttons, a timeout to close the message box, "don't show again" and "don't ask again" check boxes, a read-only edit control instead of the label for displaying the message and copying the message text into clipboard.
Added support for cool tips to the CExtLabel: Specify the tooltip text using a new SetTooltipText() method.
A set of new CExtLabel::OnAdvancedToolTip...() virtual methods allow you to control tooltip behavior on-the-fly. Added a m_rcLabelTextMargins property to the CExtLabel class, with which you can specify text margins for a label control.
Added a m_nStepSize property to the CExtScrollBar class, which allows you to specify the amount the scroll box moves when you click on one of the buttons at the end of the scroll bar. Grids Added sorting to the CExtTreeGridWnd class: Turn on sorting by applying the __EGWS_BSE_SORT_COLUMNS style.
Turn on sorting by multiple columns by applying the __EGWS_BSE_SORT_COLUMNS_ALLOW_MULTIPLE style.
Specify sorting rules using a new TreeGridSortOrderSetup() method.
Sort nested rows using a new ItemSortChildrenDeep() method. Added cell merging capabilities to the CExtTreeGridWnd: Merge cells with a new ItemCellJoinSet() method.
Get information about merged cells using a new ItemCellJoinGet() method.
You can check if some cells can be merged using a new ItemCellJoinTest() method. Added DurationMaxGet(), DurationMaxSet() and OnQueryMaxDuration() methods to the CExtGridCellDuration class, which allow you to control the duration value (in seconds) that can be entered by the user. Tabs and Tab Page Containers Added support for Ctrl+PgUp, Ctrl+PgDown, Ctrl+Tab, Ctrl+Shift+Tab key combinations to the CExtTabPageContainerWnd class, which are controlled by the following new properties: g_bHandlePriorNextKeyEvents
m_bAllowAccelBasedPageSelection Added support for multiple-row layout to tab items. You can turn on this feature by applying the __ETWS_MULTI_ROW_COLUMN style to CExtControlBar::g_dwTabContainerTabsStyle. Shell Controls and Dialogs Added a shell list view control (the CExtShellListCtrl class) with the standard Windows context menus and support for tracking file system changes and renaming shell items (see screenshot).
Added a shell tree view control (the CExtShellTreeCtrl class) with the standard Windows context menus and support for tracking file system changes and renaming shell items (see screenshot).
Added a File Open/Save dialog (the CExtShellDialogFile class), which supports all features of the file dialogs in Windows XP/Vista and much more. It looks similar to the Windows Explorer, with a shell tree view on the left and the shell list view on the right. The state persistence is supported for the following elements and values: the window and splitter positions, selected folder in the tree view, splitter position, list view mode, column widths and sorting rules (see screenshot).
Added a Browse for Folder dialog (the CExtShellDialogBrowseFor class), which allows you to select a folder (see screenshot).
Added a shell combo box (the CExtShellComboBox class) similar to that in the standard Windows File Open/Save dialog.
Added a File Types combo box (the CExtShellExtensionsComboBox class) for the File Open/Save dialog.
Added a number of classes that make easier shell-related programming: CExtShellItemData encapsulates descriptive data pertaining to a shell item.
CExtPIDL is a handy wrapper around an ITEMIDLIST pointer.
CExtArrayOfPIDLs is an array of ITEMIDLIST pointers.
CExtShellBase is a base class for any shell-related classes. Added a CExtDMFP template class, which when applied to the MFC CDocManager, provides seamless integration between the MFC document/view architecture and the new Prof-UIS file dialogs. Miscellaneous Improved non-client area painting, which is now faster, friendly to multi-monitor desktops and perfectly fine when MDI tile, cascade and arrange commands are executed.
Added transparency support to the icons represented by the CExtCmdIcon class. The transparency level can now be specified with the nSCA parameter for the following methods: Paint()
PaintAccentColorized Because of its size, Prof-UIS requires the /Zm512 compiler option to be on.
Updated the ProfUIS_Controls sample with the new features of this release.
Different instances of the CExtResourceManager in scope of one process can now be synchronized exactly like different instances of the paint manager.