Skip Navigation LinksBCGSoft > Release Notes > Version Release Notes

Release Notes

BCGControlBar Professional Edition

Version: 34.0. Released: 11/30/2023

  1. A new class CBCGPTaskDialog implements Windows Task dialog-like interface (see screenshot). Functionality of this dialog is very similar to CTaskDialog, but it has some additions:
    • Visual themes support.
    • Hyperlink tooltips.
    • Control info tips.
    • Progress bar styles (narrow channel, marquee dots/gradient).
    Our new sample application TaskDialogDemo demonstrates functionalities of this dialog.
  2. Implemented Image Effects (see screenshot). The following effects were added:
    • CBCGPImageEffectConvolveMatrix: implements convolve matrix effect (see screenshot).
    • CBCGPImageEffectGaussianBlur: implements Gaussian blur effect (see screenshot).
    • CBCGPImageEffectColorMatrix: implements color matrix transformation effect (see screenshot).
    • CBCGPImageEffectComponentTransfer: implements RGBA components transformation effect (see screenshot).
    • CBCGPImageEffectDropShadow: implements dropped shadow effect (see screenshot).
    • CBCGPImageEffectMorphology: implements erode or dilate effects (see screenshot).
    • CBCGPImageEffectDiffuseLighting and CBCGPImageEffectSpecularLighting: implement lighting effects (see screenshot).
    Please take a look at our GraphicsManagerDemo sample to see this new cool feature in action.
  3. Dialogs and Forms
    1. Implemented ability to remove all info tips: a new method RemoveInfoTips was added to CBCGPDialog, CBCGPFormView, CBCGPDialogBar and CBCGPPropertyPage classes. Call this method for removing previously created info tips.
    2. Progress dialog: CBCGPProgressDlgParams has a new attribute m_bProgressNarrowChannel. When this member is TRUE, the progress bar will have a narrow channel (Office 2013/VS 2012 or newer visual themes only).
  4. Gauge Controls
    1. Implemented gauge visual effects (see screenshot): you can apply shadow or glow effects to the gauge pointers, text labels, icons and other elements. Call new method CBCGPGaugeImpl::SetVisualEffects to specify the gauge effects(s). With a help of new visual effects, you can create realistic gauges! Please take a look at BCGPGaugesDemo example to see this new feature in action.
    2. CBCGPCircularGaugeImpl: added gauge scale rotation with animation effect (see screenshot). Call new method RotateScale to change a gauge scale initial angle. A new view Rotated Scale in BCGPGaugesDemo example demonstrates this feature.
  5. Visual container and Visual Designer
    1. CBCGPBaseVisualObject: added visual effects support. The following new methods were added to this class:
      • SetVisualEffect
      • GetVisualEffect
      • CreateEffect
    2. A new helper class CBCGPVisualEffectHelper simplifies drawing visual objects with effects. Please take a look at BCGPGaugeDemo example ("Radial menu" view) where we demonstrate how to draw custom shapes with the shadow (see screenshot).
    3. CBCGPDiagramShape: a new global flag m_bShadowVisualEffect specifies whether the shadow will be drawn using new visual effect (see screenshot). By default, this flag is TRUE; set it to FALSE if you wish to draw shadow with the old appearance.
  6. Visual Manager and Themes
    1. Improved Expand/Collapse button appearance in some visual themes.
    2. Office 2007/2010 themes: improved default (theme) colors in circular and linear gauges (see screenshot).
  7. Grid and Report Controls
    1. CBCGPGridItem: improved grid item options (drop-down list) support. The following new methods were added to this class:
      • FindOption: find option by name.
      • FindOptionByData: find option by data.
      • GetSelectedOption: obtain selected option index.
    2. Improved grid item selection methods: added 2 new methods GetSel (retrieves the selected state of the specified item) and SetSel (sets selected state of the specified item).
  8. Controls
    1. CBCGPCheckComboBox: implemented state support. In this version, you may call a new method SetState to check/uncheck items by the state mask and call GetState to obtain the state. For example, calling SetState(0x3) checks first 2 items and unchecks the rest of the items.
    2. CBCGPButton: added standard (stock) icons support (see screenshot). Call new method SetStdIcon with one of the following parameters: IDI_INFORMATION, IDI_WARNING, IDI_ERROR, IDI_QUESTION or IDI_SHIELD to display the standard icon on the themed push button. BCGPControls example ("Push Button" page) demonstrates this new feature.
    3. CBCGPInfoBoxCtrl: added multiple hyperlinks support (see screenshot). To use this new feature, add 'a' tags to the text and set new public member m_bHyperlinks to TRUE. Please take a look at BCGPControls example ("Info Box" view) to see this new feature in action.
    4. CBCGPProgressCtrl additions:
      • Added "Narrow channel" attribute (see screenshot). This modern appearance is available in Office 2013/VS 2012 or newer visual themes only.
      • Implemented progress states (normal, error or paused) support for all visual themes (see screenshot)
      • Improved progress marque appearance in some visual themes.
    5. Added new control CBCGPMultiLinkCtrl (see screenshot): functionality of this control is very similar to MFC CLinkCtrl but our control supports visual themes, link tooltips and custom colors. Please take a look at BCGPControls example to see this new control in action.
  9. Shell Management
    1. Themed file dialog: added cut/copy/paste keyboard shortcuts support (like Ctrl+C for the file copying or Ctrl+V for the pasting).
    2. CBCGPShellManager: a new method InvokeShellCommand allows to invoke specific shell command (default, cut, copy or paste) for the given shell item.
    3. CBCGPShellList and themed file dialog: implemented some other performance improvements.
  10. Graphics Manager
    1. CBCGPBrush: "CBCGPImage m_TextureImage" was replaced with "CBCGPImage* m_pTextureImage" (the memory is allocated only if needed and this change dramatically reduces amount of the brush object memory). If for some reason you need the old member variable (e.g., you are using m_TextureImage in CBCGPBrush-derived class), uncomment new definition BCGP_TEXTURED_BRUSHES_LEGACY in BCGCBProConfig.h file and rebuild the library.
    2. Added visual effects support (see GraphicsManagerDemo sample):
      • PushEffect: creates a new off-screen graphics manager with specific visual effect.
      • PopEffects: draws effects on the current graphics manager content and releases previously created effects.
    3. SVG image rendering: added partial support for SVG filters. The following filters are implemented in this version: feGaussianBlur, feColorMatrix, feComponentTransfer, feDropShadow, feFlood, feConvolveMatrix, feDiffuseLighting and feSpecularLighting.
    4. CBCGPSVGImage::DoDraw: normalizes the destination rectangle now and inverts the result bitmaps horizontally/vertically if required.
  11. Miscellaneous
    1. Application Wizard for Visual Studio 2022: added ARM/ARM64 support. Now, you can use our application wizard in Visual Studio form ARM.
    2. Modernized stock icons (such as Info, Error or Warning): now, they have Office 365-style appearance (see screenshot).
    3. CBCGPStatusBar: added extended layout support. When extended layout is enabled, the wide (with SBPS_STRETCH style) pane occupies all available horizontal space and others panes remain visible when the width of parent frame is reduced (in the default mode, the minimum wide pane width is 1/4 of the screen width). Call a new method EnableExtendedLayout to enable/disable extended layout. Please take a look at StatusBarDemo sample to see this new feature in action.
    4. CBCGPToolbarDateTimeCtrl: improved accessibility support.
    5. CBCGPCommandManager: you can specify a maximal displayed value of numeric badge using new method SetNumericNotificationBadgeMaxDisplayedValue. By default, all values greater than 99 are displayed as "…".
    6. CBCGPWinApp: added a new virtual method LoadSystemLibrary. Override this method to load the system DLL (such as user32.dll or shell32.dll) from specific location or with specific attributes. By default, the libraries are loaded using LoadLibrary method.
    7. CBCGPWebView2CtrlOptions: a new member m_pEnvironmentOptions specifies WebView2 environment options (see ICoreWebView2EnvironmentOptions documentation for more details).
  12. Examples and Samples
    1. BCGPControls: added demonstrations of the following new features: multi-link control, info box with hyperlinks, push button with stock icons and progress bar with states and narrow channel.
    2. BCGPGaugesDemo: added demonstrations of visual effects and gauge scales rotation.
    3. BCGPGridExample: added demonstration of how to create a custom "Currency" grid cell (see screenshot).
    4. DiagramEditor: added demonstration of how to use a new class CBCGPVisualEffectHelper for drawing custom shape shadows.
    5. GraphicsManagerDemo: demonstrates new image effects (see screenshot).
    6. StatusBarDemo: added demonstration of new extended layout.
    7. TaskDialogDemo: this new sample demonstrates how to use a Task Dialog (see screenshot).
  13. Fixes
    1. Addressed issue with incorrect link colors in Windows high-contrast dark themes.
    2. CBCGPProgressCtrl: addressed issue with incorrect handling of elapse time in PBM_SETMARQUEE message processing.
    3. CBCGPGridItem: addressed issue with calling FormatItem before adding the item to grid.
    4. CBCGPGridItem: WriteToArchive correctly processes types not handled by COleVariant (such as VT_INT, VT_UINT and VT_DECIMAL).
    5. Ribbon bar: addressed issue with incorrect width of the fixed-size tooltip displayed on the Ribbon button with a large (32x32) icon.
    6. Ribbon bar: addressed issue with incorrect keyboard navigation when Ribbon does not have tabs (the single tab is hidden).
    7. CBCGPPropList: addressed issue with missing descriptions on tooltip displayed near the custom toolbar buttons.
    8. CBCGPRibbonEditCtrl: addressed some issues with typing extended characters.
    9. Circular and linear gauges: addressed issue with incorrect tick mark default length after DPI changing.
    10. Visual designer: fixed bug with incorrect specifying of tick marks on the closed scale of the circular gauge.
    11. CBCGPGridCtrl: addressed some minor issues with exporting content to text and HTML.