Release Notes BCGSuite for MFC Version: 33.4. Released: 02/14/2023 Dialogs and Forms BCGPMessageBox: improved dialog appearance when caption width exceeds the screen size. In addition, a new global variable CBCGPMessageBox::m_nLimitCaptionWidth allows to limit dialog width in case of very long caption text. E.g., if you set this variable to 70, the caption width will be limited by 70 percent of the screen width. CBCGPStaticLayout: implemented ability to disable layout with incorrect (non-existing) controls. If upon adding anchor the layout manager cannot find control with specified ID, the layout is disabled for this window. Call new method DisableOnAddAnchorError to enable this new feature. Grid and Report Controls Improved appearance of the disabled grid control: all texts inside the grid are drawn using special gray foreground color. You may enable this feature by calling a new method CBCGPGridCtrl::SetDisabledTextColor. Implemented SVG icons support for the header and cell grid icons. CBCGPTreeCtrlEx: implemented ability to tune GetNextItem method behavior (when control filter bar is displayed). Call new method SetFilterBarGetNextItemOption(TRUE) to skip hidden items. CBCGPTreeCtrlEx: a new method GetColumnValue allows to retrieve the value from a tree item in the specific column. CBCGPGridItem: added horizontal align support (see screenshot). Please call new method SetHorzAlign to specify the horizontal alignment and GetHorzAlign to obtain it. Please take a look at BCGPGridExample application (new "Formatted Grid" view) to see this new feature in action. Improved Grid zooming in/zooming out behavior: you may specify ability to auto-resize grid columns by calling a new method CBCGPGridColumnsInfo::EnableScaledInZoomedGrid. Added grid icons auto-scaling support: when grid is zoomed in or zoomed out, the images are scaled automatically according to the current zooming ratio (see screenshot). A new helper method CBCGPGridCtrl::SelectArea provides an easy way to select a range of items. Implemented ability to draw selected grid item(s) using grid item foreground/background colors (see screenshot). To enable this option, please call a new method CBCGPGridCtrl::SetDrawCellsWithCustomColorsOnSelection. Please take a look at BCGPGridExample application (new "Formatted Grid" view) to see this new feature in action. Calendar and Planer Added ability to drop dragged appointment to the day located in non-displayed month(s): CBCGPPlannerManagerCtrl::SetCalendar and CBCGPCalendar::SetPlanner methods have a new, optional parameter bDropOnDaysOutsideMonths. Improved appointment dragging behavior in the monthly view. Controls CBCGPListCtrl: added owner-draw groups support (see screenshot). Override a new virtual method OnDrawGroup to implement a themed (e.g. visual manager-based) groups. Please take a look at BCGPControls example to see this feature in action. CBCGPMenuButton: a new helper method SetupMenu simplifies a menu button initialization. CBCGPBreadcrumb: added a new method ResetContent. Call this method to remove all breadcrumb items. CBCGPInfoBoxView: a new member m_clrBackground specifies view background color. Miscellaneous CBCGPSVGImage: added "paint-order" attribute support. CBCGPGridVisualObject: if the parent visual container has auto-hide scrollbars, the grid control scrollbars will also be auto-hidden in the inactive state. Examples and Samples BCGPCalendarDemo: demonstrates how to use planner icons in all visual themes. BCGPControls: added list control custom themed groups demonstration. MessageBoxDemo: added caption width limit demonstration. BCGPGridExample: added new view Formatted Grid (see screenshot). This view demonstrates how to format specific Grid control cells. You may change foreground and background colors, text style and horizontal/vertical alignment. Fixes CBCGPGroup: addressed issue with incorrect control rendering when "Draw by parent" style is specified and group has check box or radio button. CBCGPMenuButton: addressed issue with missing menu keyboard shortcut underlines when the menu was activated by keyboard. CBCGPGridCtrl: addressed issue with clicking on the vertical line when grid columns are not resizable. The nearest grid cell will be selected now in this case. CBCGPTabWnd: addressed issue with unnecessary setting focus to the tab window when one of this window child windows already has focus. CBCGPTabWnd: added tabs area repainting at the end of tab changing animation. Sometimes, when the application is busy, the tabs were not properly repainted during the animation. CBCGPGraphicsManagerGDI: addressed issue with incorrect caching of geometry groups in some cases. CBCGPGridCtrl: addressed issue in filter-bar mode in GetSelectedItemCount method. CBCGPGridCtrl: RedrawMergedItems is working correctly now when item has a bold font. CBCGPGridCtrl: addressed issue with incorrect grid column width after moving zoomed grid to monitor with a different DPI value.