Release Notes BCGSuite for MFC Version: 34.0. Released: 11/30/2023 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. Gauge Controls 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. 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. Visual container and Visual Designer CBCGPBaseVisualObject: added visual effects support. The following new methods were added to this class: SetVisualEffect GetVisualEffect CreateEffect 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). 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. Grid and Report Controls 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. 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). Controls 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. 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. Graphics Manager 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. 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. 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. CBCGPSVGImage::DoDraw: normalizes the destination rectangle now and inverts the result bitmaps horizontally/vertically if required. Examples and Samples BCGPGaugesDemo: added demonstrations of visual effects and gauge scales rotation. BCGPGridExample: added demonstration of how to create a custom "Currency" grid cell (see screenshot). DiagramEditor: added demonstration of how to use a new class CBCGPVisualEffectHelper for drawing custom shape shadows. GraphicsManagerDemo: demonstrates new image effects (see screenshot). BCGPControls: added info box with hyperlinks demonstration. Fixes CBCGPProgressCtrl: addressed issue with incorrect handling of elapse time in PBM_SETMARQUEE message processing. CBCGPGridItem: addressed issue with calling FormatItem before adding the item to grid. CBCGPGridItem: WriteToArchive correctly processes types not handled by COleVariant (such as VT_INT, VT_UINT and VT_DECIMAL). Circular and linear gauges: addressed issue with incorrect tick mark default length after DPI changing. Visual designer: fixed bug with incorrect specifying of tick marks on the closed scale of the circular gauge. CBCGPGridCtrl: addressed some minor issues with exporting content to text and HTML.