|
Version 20.0. Released 03/11/2013 |
|
New features |
- Touch/Gesture support. We decided to implement extended gestures
support for most of our controls. In addition, we've implemented easy to
use, compact and intuitive Windows Gesture API wrapper, so you can add the
touch support to your application in few lines of code. The following
methods were added to CBCGPWnd and CBCGPBaseVisualObject classes:
- OnGestureEventZoom
- OnGestureEventPan
- OnGestureEventRotate
- OnGestureEventTwoFingerTap
- OnGestureEventPressAndTap
- ResetGestureOptions
- GetGestureConfig
So, using our library, you can make your product fully compatible with
Microsoft Surface and other touch-enabled devices!
- WinUI Tiles (see
screenshot):
- Implemented custom views associated with a tile/caption button.
Please call a new method CBCGPWinUITile:: SetView to associate the tile
with the custom view. By default, CBCGPVisualContainerCtrl window will
be created, but you can use any CWnd-derived classes as tiles view.
Please take a look at the following WinUITilesDemo tiles:
- Settings (see
screenshot) and About (see
screenshot): illustrates tile-associated view created with help
of Visual Designer.
- Other tiles (see
screenshot):: illustrates dynamically-created tile-associated
view.
- Added keyboard navigation support. A new method CBCGPWinUITiles::
GetCurSel returns a currently selected tile and CBCGPWinUITiles::
SetCurSel allows to change the current selection.
- Implemented Group Captions in the WinUI Tiles control: call new
method CBCGPWinUITiles:: SetGroupName to specify the group name and
other attributes such as text color or interactivity. The new registered
message BCGM_ON_CLICK_WINUI_GROUP_CAPTION allows to catch group name
mouse click event. Please take a look at WinUITilesDemo sample
application to see this new feature in action.
- Added Navigation "Back Button". Call new method "CBCGPWinUITiles::EnableNavigationBackButton"
to enable/disable the button and add new registered message
BCGM_ON_CLICK_WINUI_NAV_BACK_BUTTON handler to catch click button event.
- Added custom caption buttons. AddCaptionButton method was added to
CBCGPWinUITiles class. The new registered message
BCGM_ON_CLICK_WINUI_CAPTION_BUTTON allows to catch caption button mouse
click event.
- Implemented tiles scrollbar custom color theme: CBCGPWinUITiles::
SetScrollBarColorTheme allows to modify scrollbar color theme and
CBCGPWinUITiles:: GetScrollBarColorTheme returns the current theme.
- Added custom badge glyphs support. Please specify/obtain a tile
custom badge index using new CBCGPWinUITile methods SetCustomBadgeIndex/GetCustomBadgeIndex
and set custom image list using CBCGPWinUITiles:: SetCustomBadgeGlyphs
method.
- Chart Control:
- Added chart series shadow effect (see
screenshot). To enable shadow under the chart series, please fill
BCGPChartFormatSeries:: m_shadowType and call CBCGPChartSeries::
SetSeriesFormat method. Please take a look at BCGPChartExample
demonstration program to see this feature in action.
- Implemented Pie and Polar charts interactivity.
- Diagram control:
- A diagram connector has line thickness and line style attributes
now: SetThickness, GetThickness, SetStrokeStyle and GetStrokeStyle
access methods were added to CBCGPDiagramConnector class.
- Added ability to specify a custom text format in Diagram Text
Object: CBCGPDiagramTextDataObject::SetDefaultTextFormat was added.
- Graphics Manager:
- Added 'Underline' and 'Strikethrough' attributes to CBCGPTextFormat
class. Also, we've updated CBCGPTextFormatDlg for changing these
attributes (see
screenshot).
- Implemented luminosity compare in CBCGPColor clas: CompareWith
method and '<', '<=', '>', '>=' operators were added.
- Added 'Resize' method to CBCGPImage class.
- CBCGPGraphicsManager:: SetDrawShadowMode specifies the "shadow"
rendering mode. When this mode is on, all graphics manager objects will
be rendered using semi-transparent brush with a specific offset.
- Push Button:
- CBCGPButton has a new method 'SetAutoCheck'. Please call this method
if you need to modify BS_AUTOCHECKBOX, BS_CHECKBOX, BS_RADIOBUTTON or
BS_AUTORADIOBUTTON button style.
- Added a new attribute "DrawText": Call new method
CBCGPButton::SetDrawText(FALSE) if you don't wish to display the text
label (it may be useful in case of MSAA support when button should have
an invisible name).
- Gauges:
- The following new gauge types are introduced in the version:
- Switch control (see
screenshot). "On/Off" gauge - implemented in class
CBCGPSwitchImpl.
- Static Frame (see
screenshot). The simple frame gauge - implemented in class
CBCGPStaticFrameImpl.
- Added new tick mark style 'BCGP_TICKMARK_TRIANGLE_INV' - "inverted"
triangle tick mark (see
screenshot).
- Implemented ability to specify minor tick mark relative position:
SetMinorTickMarkPosition and GetMinorTickMarkPosition methods were added
to CBCGPGaugeImpl class.
- New SetScaleTickMarkOutlineBrush/GetScaleTickMarkOutlineBrush
CBCGPGaugeImpl class methods allow to specify/obtain tick mark outline
brush.
- Added 'DefaultDrawFlags' attribute to CBCGPStaticGaugeImpl class.
- Visual Container:
- Implemented scroll bars custom color theme: new optional parameter
'CBCGPVisualScrollBarColorTheme* pColorTheme = NULL' was added to
CBCGPVisualContainer:: EnableScrollBars method.
- Added copying of the multiple selections (using Ctrl key and mouse
dragging). Use a new flag 'BCGP_CONTAINER_ENABLE_COPY' to activate this
feature in CBCGPVisualContainer.
- Miscellaneous:
- Added user data support in CBCGPGridColumnsInfo class. Please call
SetColumnData/ GetColumnData to set/get the user data associated with
the specific grid column.
- Added help support to CBCGPMessageBox class: the developer can use
MB_HELP style now to display "Help" button and specify help topic ID in
dwContextHelpId member of BCGP_MSGBOXPARAMS structure.
- Changes in examples and samples:
- BCGPChartExample: added chart shadows demonstration
- BCGPGaugesDemo:
- New "Switch" view demonstrates usage of the new Switch gauge.
- Added demonstration of the new minor tick marks position and
style.
- "Car Climate Control" view demonstrates how to create how to
implement digital dashboard with the various type of gauges (see
screenshot).
- WinUITilesDemo: demonstrates new WinUI Tiles features such as views
associated with tile, caption buttons and group Captions (see
screenshot).
|
|
Fixes: |
- CBCGPGraphicsManagerD2D: WIC Imaging Factory is
initialized properly now if the latest Windows SDK is
used along with VS 2012 (Windows 7 and Vista only).
- A skinned check box/radio button doesn't catch
VK_RETURN key now.
- Fixed problem with rendering CBCGPProgressCtrl
created with PBS_VERTICAL style.
- Fixed some RTL drawing issues. The following
controls are rendered correctly now when a window has
WS_EX_LAYOUTRTL style: CBCGPScrollBar, Calendar Bar,
Message Box, Tab Control and others.
- Fixed problem with CBCGPEdit rendering when control
doesn't have WS_BORDER style.
- CBCGPPropertySheet preserves the selected tab/list
item if OnKillActive method of the active page has
returned FALSE.
- Chart Control: fixed bug with positioning of the 3D
sides upon specific series gap values.
- CBCGPRadialMenuObject is correctly rendered now when
display high contrast mode is active.
- CBCGPToolbarDateTimeCtrl class is DPI-aware now.
- CBCGPDrawManager::ColorMakeLighter correctly works
now with very dark color (which close to black).
|
|
Version 19.0. Released 10/04/2012 |
|
New features |
- The product is
fully-compatible
with Visual
Studio 2012 now!
The evaluation
version includes
binary files for VS
2012 and Integration
Wizard properly
integrates the
product with VS 2012
environment. Also,
all our examples and
samples were
thoroughly tested
with the new Visual
Studio. The product
Help file is
compatible with
Visual Studio 2012
Help System (MS Help
Viewer 2.0) now.
- The product is
fully tested under
Windows 8
release.
- According to
Microsoft request,
the name "Metro UI"
is not legal
anymore, so we made
the following
changes in the
product API:
-
BCGM_ON_CLICK_METRO_UI_TILE
->
BCGM_ON_CLICK_WINUI_UI_TILE
-
CBCGPMetroUITile
->
CBCGPWinUITile
-
BCGP_METRO_BADGE_GLYPH
->
BCGP_WINUI_BADGE_GLYPH
-
BCGP_METRO_IMAGE_EFFECT
->
BCGP_WINUI_IMAGE_EFFECT
-
CBCGPMetroUITiles
->
CBCGPWinUITiles
In addition,
MetroUITilesDemo was
renamed to
WinUITilesDemo.
IMPORTANT: if
you're using Metro
UI Tiles component
in your application,
please make all
required renames in
the code.
Other WinUI Tiles
changes:
-
WinUITilesDemo
demonstrates now
how to create
live tiles with
Chart control
and Circular
Gauge (see
screenshot).
- Added
caption support
to
CBCGPWinUITiles
class (see
screenshot).
The following
methods were
added:
-
SetCaption
-
GetCaption
-
SetCaptionForegroundColor
-
GetCaptionForegroundColor
-
OnDrawCaption
Please take a look
at WinUITilesDemo
sample application
to see these
features in action.
- Visual
Designer:
- Added
keyboard
support: the
user is able now
to move/resize
the
gauges/diagram
objects using
arrow keys.
- Status bar
has 2 new panes:
location and
size of the
currently
selected
gauge/diagram
object (see
screenshot).
- Grid Control:
- Implemented
a long-awaited
variable row
height support
(see
screenshot).
The following
methods were
added to grid
classes:
-
CBCGPGridCtrl::
CreateMultiLineRow
create a
multi-line
row with
specified
text lines
numbers.
-
CBCGPGridRow::
SetLinesNumber
allows to
modify row
text lines
number.
-
CBCGPGridRow::
GetLinesNumber
returns the
row text
lines
number.
Please take a
look at
BCGPGridExample
to see this
feature in
action.
- New "Freeze
Groups" feature
allows to
disable
horizontal
scrolling of
groups in the
grid control. A
new method
FreezeGroups was
added to
CBCGPGridCtrl
class.
- Improved
grid elements
margin/padding
calculations:
-
Hierarchy
level offset
is based now
on a new
method
GetHierarchyLevelOffset.
- A grid
element
height is
calculated
now using
the
following
new methods:
GetBaseHeight
and
GetButtonWidth.
- The
following
new methods
for
customization
of the mouse
wheel
scrolling
were added:
SetMouseWheelSmoothScrollLimit
and
GetMouseWheelSmoothScrollLimit
- Chart Control:
- Added chart
thumbnail mode
(see
screenshot).
SetThumbnailMode/IsThumbnailMode
methods were
added to
CBCGPChartVisualObject
class. Please
take a look at
BCGPChartExample
demonstration
program ("Chart
Thumbnails"
view) to see
this feature in
action.
- Added a new
Data Label
content type -
LC_DP_INDEX.
This type is
useful if chart
has a lot of
overlapped wide
labels (such as
in Pie or Funnel
chart types).
Simply specify
the label format
as index and
display
names/values
left of the
index value in
the chart legend
(see
screenshot).
Please take a
look
BCGPChartExample
demonstration
program ("Pie/
Doughnut/Torus"
views) to see
this new feature
in action.
-
CBCGPChartSeries
class has a new
flag 'm_bIncludeInvisibleSeriesToLegend'.
Set it to TRUE
if you wish to
display the
hidden series
entry in the
chart legend.
- Implemented
user-defined
data support in
CBCGPChartSeries:
GetUserData/SetUserData
methods were
added.
- Gauges:
-
CBCGPImageGaugeImpl:
added image
alignment
support.
SetImageAlign,
GetHorizontalAlign
and
GetVerticalAlign
methods were
added to this
class.
-
CBCGPStaticGaugeImpl:
added 'opacity'
attribute. You
can modify the
static gauge
(such as image,
text or color
indicator)
opacity by
calling new
method
SetOpacity or
get it by
calling
GetOpacity.
-
CBCGPStaticGaugeImpl::
added
fill/outline
brush
attributes.
SetFillBrush/GetFillBrush
and
SetOutlineBrush/GetOutlineBrush
methods were
added.
-
CBCGPCircularGaugeImpl
has a new helper
method:
GetSubGaugeByID(UINT
nID).
- Miscellaneous
changes:
-
CBCGPPropertySheet:
implemented tabs
scrolling
support in
PropSheetLook_Tabs
mode:
EnableTabsScrolling/
IsTabsScrollingEnabled
methods were
added.
- Added new
global flag
"CBCGPGraphicsManagerD2D::m_bForceSoftwareRendering".
If you set this
member to TRUE
on your
application
startup, the
render targets
will use
software
rendering only.
This may be
helpful if
computer doesn't
have updated
DirectX drivers.
|
|
Fixes: |
- Resolved flickering upon tab switching in
CBCGPPropertySheet
- Fixed bug with displaying skinned disabled edit
control.
- Resolved problem with drawing some gauges such as
text or digital indicators after container scrolling.
- Grid control: if EnableFilterBar method was called
more than once, a memory leak was occurred.
- Grid control: improved mouse wheel scrolling
behavior.
- Grid control: fixed drawing bug of checkbox item in
some visual themes.
- Grid control: fixed drawing bug of expand box in
HDPI mode.
- CBCGPMessageBox: fixed bug with closing message box
when embedded check box is clicked.
- Diagram control: fixed scaling bug.
- Diagram control: fixed bug with a drawing of
multi-point connectors.
- Chart control: CBCGPChartAxis::ValueFromPoint
returns a correct value now when the logarithmic scaling
is used.
|
|
Version 18.0. Released 06/27/2012 |
|
New features |
- Added support
for Visual Studio
2012 RC. The
product was
thoroughly tested
under this new
environment and all
tests were passed.
- The product is fully
tested on Windows
8 Release Preview.
- Added a new Metro
style Tiles control
(see
screenshot), which
implements the
following features:
-
Square and wide
tiles.
-
Tile groups.
-
Rectangular or
rounded tile shapes.
-
Horizontal
("Landscape") or
vertical
("Portrait")
layouts.
-
Tile headers and
multi-line
texts.
-
Tile images.
-
Numeric and
iconic badge
support.
-
"Live" tiles
with image
animation
effects.
-
Custom colors
and brushes.
-
Custom tiles.
-
OS-independent:
since our
implementation
just emulates
Windows 8 Metro
style Tiles, you
can use the our
Metro Tiles
control under
all supported
operating
systems!
This control is
fully-customizable,
so you can use it
with your own
images, textured
brushes and custom
shapes (see
screenshot).
The Metro Tiles
control is suitable
for the wide range
of user interfaces
such as application
start page, activity
monitor and many
others.
Please run the
new
MetroUITilesDemo
sample to see
the new control
in action.
- Chart
Control implements
the following new features:
- Added advanced
legend (see
screenshot).
Using this new
component, you
can add the
following chart
legend features:
- Ability to show
legend entries
from multiple
charts.
- Custom entries
support.
- Custom legend
title.
- Custom legend
cell format
(including
colors and text
label formats).
- Custom columns.
- Vertical and
horizontal
layouts.
- Automatic
scrolling.
- Print and print
preview support.
- Mouse events
support allows
to create an
interactive
legend entries
(such as buttons
or checkboxes).
- Ability to show
the legend in
any window such
as Visual
Container,
docking pane or
any others.
- CBCGPChartView
class
integration
(call
EnableAdvancedLegend
method).
Please take a
look at
BCGPChartExample
application ("Chart
Advanced Legend"
view) to learn
how to use this
new component.
In general,
you've to
instantiate CBCGPChartLegendVisualObject
object (if
you're using the
legend inside
CBCGPVisualContainer)
or create CBCGPChartLegendCtrl
window and add
related chart(s)
using CBCGPChartLegendVisualObject::AddRelatedChart
method.
-
Texture-based
custom themes.
Since CBCGPBrush
is working now
with texture
images, you can
easily create
your own,
nice-looking
custom themes!
You can assign
textures to the
chart series,
walls, plot area
and legend.
Please run BCGPChartExample
application,
choose a "Custom
Theme
(Textures)"
in "Theme"
toolbar combo
box and
examine a new
fresh look! The
following
screenshots are
illustrating how
the various
chart type may
look with the
new textured
brushes:
- New method
CBCGPChartCtrl::DoPrint
simplifies
printing support
if the chart is
created inside
dialogs or
forms.
- Added method
CBCGPChartTheme::PrepareWallBrushes.
Call this method
to assign a
single brush for
all 3D chart
wall and floor
objects with
automatic
lighting/shading.
- Grid Control
additions:
- Added active
accessibility
support for the
grid and report
controls.
- New class CBCGPGridCaptionRow
was added for
the grid control
(see
screenshot).
To add the
caption please
call new
CBCGPGridCtrl::AddCaptionRow
method. This
class can be
used to separate
the contents of
the grid. Please
see the usage in
BCGPGridExample
program at "Cell
Types" tab.
- Added
support for the
currency values.
- New options to
customize
inactive
selection color
in the grid. See
new members
m_SelColorsInactive
and
m_GroupSelColorsInactive
in
CBCGPGridColors
class.
- New option
BCGP_GRID_FINDREPLACE_PARAM::bStartWith
extends the
find/replace
mechanism.
- New virtual
method
CBCGPGridRow::CanSelect
allows to skip
some rows while
navigating by
keyboard in the
grid.
- New method
method
CBCGPGridCtrl::SetExportTextSeparator
allows to
customize some
exporting
settings.
- New following
helpers were
added: CBCGPGridCtrl::IsItemInRange,
CBCGPGridCtrl::IndexToOrder,
CBCGPGridCtrl::CreateCaptionRow.
- Graphics Manager:
- Added
textured brushes
support. The
following new
methods were
added to
CBCGPBrush
class:
- New
constructor
CBCGPBrush(const
CBCGPImage&
image, const
CBCGPColor&
clrFillAlt,
BOOL
bIsWaterMarkImage)
-
GetTextureImage
-
HasTextureImage
-
IsWaterMarkImage
-
SetTextureImage
-
ClearTextureImage
- CBCGPColor has
new attributes
IsDark() and
IsLight().
- Added new
drawing methods
to
CBCGPGraphicsManager
class:
DrawCheckBox and
DrawRadioButton.
- Miscellaneous
additions:
-
Added active
accessibility
support for the
calendar
control.
-
BCGPDiagramDemo
and
BCGPGaugesDemo
illustrates how
to use texture
brushes in the
diagram and
gauge controls
(see
screenshot).
- CBCGPProgressDlgParams
has a new member
'BOOL
m_bWaitForMessages'.
- New static
member
CBCGPMessageBox::m_bDontUseDefaultIcon
allows
enable/disable a message box
icon.
- New class CBCGPDiagramView
implements a
view with
embedded diagram
control.
-
CBCGPBrushButton
has a new public
member 'CBCGPEditBrushOptions
m_Options'. You
can customize
CBCGPEditBrushDlg
invoked by the
button
appearance now.
-
CBCGPButton::SetStdImage
has a new
optional
parameter 'CBCGPMenuImages::IMAGE_STATE
stateDisabled'.
|
|
Fixes: |
- Chart control: improved 3D charts rendering
performance.
- Chart control: fixed problem with drawing Pyramid
chart when all data points have zero value.
- Chart control: fixed some problems with the
small-sized chart layout calculation.
- Grid control: CBCGPGridCheckItem doesn't change a
value when the space button was pressed in the
read-only mode.
- Grid control: collapse/expand buttons of the groups
are not scrolled in freeze columns mode.
- Grid control: Fixed colors in some visual themes.
- Grid control: fixed scrolling by keyboard.
- Grid control: CBCGPGridCtrl::GetSelectedItems does
not return hidden or filtered items now.
CBCGPGridCtrl::IsItemSelected is fixed.
- Grid control: fixed bug with auto closing the
in-place edit on scrolling. Now the grid auto-saves
changes and closes the in-place editor before scrolling.
- Grid control: CBCGPGridCtrl::EnsureVisible is
working correctly now.
- CBCGPButton::UncheckRadioButtonsInGroup doesn't
check invisible button now.
- Radial menu: fixed icon drawing bug. In some cases
the icon was drawn "blurred".
- CBCGPEdit: appearance of the control in the Visual
Manager mode has been improved.
- Fixed some bugs with re-loading recent size and
position of the dialogs and property sheets.
- Fixed bug with nested redrawing in
CBCGPCalendar::RecalcLayout method.
- Diagram: fixed bug with connectors positioning when
the diagram scrolling/zooming was performed.
- Help: fixed style problems in help files for Visual
Studio 2005/2008/2010.
|
|
Version 17.1. Released 04/02/2012 |
|
New features |
- Added support
for Visual Studio
11 Beta.
- The library is
fully tested on
Windows 8
Consumer Preview
operating system.
-
Chart
Control
implements new and
updates existing
features:
-
Missing data
support. Call
CBCGPChartVisualObject::AddChartEmptyData
or
CBCGPChartSeries::AddEmptyDataPoint
to add empty
data points.
Call
CBCGPChartSeires::SetTreatNulls
to tell a series
how to treat
missing data (as
values, skip, or
don't paint).
This feature is
supported for
line, area,
column, bar,
bubble, point,
ternary and
stock charts.
-
Support for
"smart labels"
(see
screenshot).
This feature
intelligently
lays out data
labels
preventing
overlapping.
Call
CBCGPChartVisualObject::EnableSmartLabels
to enable or
disable this
feature (now
it's enabled by
default for
supported chart
types). Call
CBCGPChartVisualObject::SetSmartLabelsParams
to fine tune the
"smart labels"
algorithm. This
feature is
supported for
line, area,
point, bubble
and ternary
charts.
-
Stock chart can
display data as
a line based on
open, high, low,
close or custom
calculated
value. You can call CBCGPChartStockSeries::SetStockSeriesType
with newly added
SST_ types to
set the desired
stock series
type. Call
CBCGPChartStockSeries::SetCustomStockValueCallback
or override
GetCustomStockValue
method in a
derived class to
return custom
calculated stock
values when
you set
SST_LINE_CUSTOM
type.
-
Added a new
method
CBCGPChartAxis::UpdateSplitAxisSizeByPercent
enabling you to
adjust sizes of
split axes
programmatically.
-
Added two new
color themes:
"Black and
Green" (CT_BLACK_AND_GREEN
- see
screenshot)
and "Black and
Blue" (CT_BLACK_AND_BLUE
- see
screenshot).
-
Diagram
Control
implements new and
updates existing
features:
- Added zoom
support for
diagram, all
diagram shapes
and connectors
support
proportional
scaling.
- Improved
features for
runtime editing
of diagram. See
new
DiagramEditor
sample
(see
screenshot).
- Implemented
copy/paste
support for the
diagram editors.
- Added
BCGM_DIAGRAM_POS_SIZE_CHANGED
event.
- Added
support for drag
and drop
connectors and
shapes in edit
mode.
- Added shapes
coloring. The
following new
shapes
properties were
added to
CBCGPDiagramVisualObject
class:
-
GetFillBrush/SetFillBrush
-
GetOutlineBrush/SetOutlineBrush
-
GetShadowBrush/SetShadowBrush
- Added
connectors and
connector arrows
coloring. The
following new
properties were
added to
CBCGPDiagramConnector
class:
-
GetOutlineBrush/SetOutlineBrush
-
GetArrowOutlineBrush/SetArrowOutlineBrush
-
GetArrowFillBrush/SetArrowFillBrush
- Implemented
new shape types:
- Image
item -
CBCGPDiagramImageObject
class
- Table
shape -
CBCGPDiagramTableShape
class.
- A new class
CBCGPDiagramCustomShape
implements
custom shapes
support.
- Helper
diagram's entity
"ConnectionPoints"
was renamed to "ConnectionPorts".
- The method
CBCGPDiagramVisualObject::SetTextValue
was renamed to
CBCGPDiagramVisualObject::SetTextData
for consistence.
You can see the
new features in
action in the
new sample
DiagramEditor
and modified
example
BCGPDiagramDemo.
-
Added a new
TreeMap control
(see
screenshot).
The Treemap is a
space-constrained
visualization of
hierarchical
structures. It shows
attributes of leaf
nodes using size and
colors. Please take
a look at new
TreeMapDemo sample
to see this control
in action.
-
Message Box:
- The look of the
product message
boxes was
significantly
improved: the area
behind buttons is
painted by Visual
Manager using
shading effects (see
screenshot).
If a developer
prefers the old look,
it's possible to set
a new member BCGP_MSGBOXPARAMS::bDrawButtonsBanner
to FALSE. In
addition, we've
improved the
multi-line text
layout for better appearance.
- For your
convenience
displaying of
optional check box
can be done
with a single line
of code: BCGPMessageBox and
BCGPMessageBoxEx
methods have now 2
new optional
parameters:
- LPCTSTR
lpszCheckBoxLabe
// Check box
label (such as
"Don't show this
message again")
- BOOL*
pCheckBoxResult
// IN/OUT: check
box initial
state and result
Please take a
look at
MessageBoxDemo
sample to see these
features in action.
-
Progress Dialog:
- Implemented
"infinite" progress:
if you don't know
how long the process
can take, but wish
to show some
"working indication"
without creating a
custom animation,
just set
CBCGPProgressDlgParams::m_bShowInfiniteProgres
to TRUE (see
screenshot):
- Improved dialog
appearance.
-
Graphics Manager:
- Added
scaling support
for the
following
graphics
classes:
-
CBCGPPoint
-
CBCGPRect
-
CBCGPRoundedRect
-
CBCGPEllipse
-
CBCGPGeometry
-
CBCGPTextFormat
- Implemented
printing
support:
SetPrintInfo/GetPrintInfo
methods were
added.
- Visual
Control and Visual
Container:
- Added scroll
support to visual
container: CBCGPVisualContainer::EnableScrollBars
enables/disables
container scroll
bars. A new
virtual method OnScroll was
added to
CBCGPBaseVisualObject
class.
- Added "click
and hold"
support to
CBCGPBaseVisualCtrl
class. The
following new
methods were
implemented to
support this
feature:
-
GetClickAndHoldID
-
GetClickAndHoldRect
-
StartClickAndHold
-
StopClickAndHold
-
OnClickAndHoldEvent
- Added
printing
support. Just
call
CBCGPBaseVisualCtrl::DoPrint
or
CBCGPBaseVisualCtrl::DoPrint
method to print
your visual
container/control
content.
- Implemented
user data
support in CBCGPBaseVisualObject
class:
GetUserData/SetUserData
methods were
added.
- Improved
multiple-selection
mode in
CBCGPVisualContainer:
-
SelectAll
method was
added.
-
Implemented
2 different
"hit testing
inside
selection"
behaviors:
SetHitTestSelected
and
IsHitTestSelected
methods were
added.
- Added
FireSelectionChangedEvent
virtual
method and
BCGM_CONTAINER_SELCHANGED
registered
message
-
Visual Designer
-
The designer
supports now
both gauges and
diagrams (see
screenshot)
- Implemented
multi-selection
and element
alignment
operations.
- Grid control
- Added
ability to
disable grid
lines in the
grid: new
CBCGPGridCtrl::EnableGridLines
method.
- Added
CBCGPGridCheckItem::SetLabel
method to set
text label for
the grid check
item.
- Calendar
(Planner) control
- Added
ability to
scroll all-day
events in the
calendar header
area.
- Added
multi-line (word
wrapping)
support for the
multi-hour
appointments.
- Miscellaneous
additions
-
CBCGPDrawManager
line, arc and
ellipse drawing
methods have a
new optional
parameter: int
nPenStyle =
PS_SOLID.
-
CBCGPProgressCtrl
supports
PBS_MARQUEE
style now.
- Added
scaling support
to CBCGPTagCloud
control.
- Examples and samples
- BCGPChartExample has the following additions:
- Stock chart ("Stock Charts | Stock")
demonstrates new StockSeriesType types (line
drawn by OHLC and custom values) (see
screenshot).
- Added demonstration of real time stock chart
in virtual mode ("Stock Charts | Stock Real
Time").
- Added "Advanced Features | Smart Data
Labels" view, which illustrates the "smart
labels" feature.
- Added Print/Print preview support to each
view.
- BCGPCalendarDemo demonstrates header (all-day
events) scrolling now.
- Added skins support to BCGPControls example (see
screenshot)
- BCGPDiagramDemo demonstrates diagram Zoom
In/Zoom Out features.
- The following new samples were added:
- DiagramEditor demonstrates how to edit the
Diagram Control.
- TreeMapDemo: demonstrates new TreeMap
control.
|
|
Fixes: |
- Chart control: when an axis works in "fixed interval
mode" the interval size is not adjusted anymore to fit
the plot area size. Instead, the last interval can be
truncated and displayed partially.
- Chart control: fixed problem with label interlacing
when axis becomes too small.
- Pie chart correctly displays very small slices.
- Chart control: fixed printing (and scaling) issues
with axes in "fixed interval" mode.
- Chart control: fixed printing issues with legend
size.
- Chart control: split axes (when you split an axis to
two axes using CBCGPChartAxis::Split) take correct size.
- Chart control: fixed labeling and zooming issues
with date-time axes.
- Chart control: fixed layout of radar chart.
- Grid control: fixed bug with alignment of merged
cells.
- Grid control: mouse click was disabled for a grid
check item (CBCGPGridCheckItem) in read-only mode
- Grid control: fixed bug with selection border.
- Property Sheet: fixed bug with redrawing non-client
area when the property sheet is skinned and a developer
changes the currently activated visual manager or DWM
composition is being changed.
- Fixed drawing bug in CBCGPListBox when control has a
horizontal extent.
- CBCGPButton doesn't draw unnecessary focus rectangle
in some visual managers now.
- CBCGPComboBox correctly draws drop-down button in
all Windows themes now.
- CBCGPGraphicsManagerGDI draws lines, arcs and
ellipses with a pen style different from PS_SOLID using
anti-aliasing methods.
|
|
Version 17.0. Released 01/23/2012 |
|
New features |
- Added the long
awaited Diagram
Control (see
screenshot), which
implements the
following features:
-
Ability to add
unlimited number
of diagram
shapes and
connectors.
-
Various
predefined
diagram blocks,
including
circles,
triangles,
boxes, rounded
boxes,
parallelograms,
trapezoids,
stars and
clouds.
-
Table diagram
block.
-
Text labels
inside diagram
blocks.
-
Smart straight
and curved
diagram
connectors with
5 types of
customizable
arrows.
-
Interactive
diagram editing.
-
Ability to save
and load diagram
to/from XML.
-
Copy diagram
image to the
Clipboard.
-
Save diagram
image to a file.
-
Please run the
new
BCGPDiagramDemo
example to see
the new control
in action.
-
Chart
Control
implements new and
updates existing
features:
-
Axis scale
breaks (see
screenshot).
Call
CBCGPChartAxis::EnableScaleBreaks
to enable this
feature for an
axis. Scale
breaks can be
generated
automatically or
added manually.
See the updated
BCGPChartExample
| Advanced
Features | Scale
Breaks for more
info.
-
Added new chart
category -
Histogram. Use
the new
BCGPChartHistogram
category and
CBCGPChartHistogramSeries
class
to create series
of this type.
-
Implemented two
new technical
indicators for
Stock charts
(see
screenshot):
Bollinger Bands
and MACD. Use
CBCGPChartBollingerBandsFormula
and
CBCGPChartMACDFormula
classes to
add these
indicators to
Stock charts.
-
Stock charts are
optimized to
handle very
large data. Call
CBCGPChartStockSeries::AddData
and pass a
CArray of
CBCGPChartStockData
objects to
quickly
initialize a
stock series
with market
data.
-
Now stock series
are working in
"index mode"
mode by default.
It means that
data points are
accessed by
index, but X
axis displays
labels according
to date stored
in the X
component of
data point.
Important
note. Do not
call
CBCGPChartAxisX::SetFixedDisplayRange
with date/time
values, use data
point indexes
instead.
-
Now you can
create virtual
stock series by
overriding only
three methods:
IsOptimizedLongDataMode
(should return
TRUE),
GetDataPointCount
(should return
the total number
of data points
in a stock
series) and
GetStockDataAt,
which should
return the data
obtained from
external source.
-
Line, Area,
Column, Bar and
Histogram series
can handle very
large volumes by
trading off the
ability to
customize
individual data
point
properties. Call
CBCGPChartSeries::AddDataPointsOptimized
or
CBCGPChartVisualObject::AddDataPointsOptimized
with array
of double values
to add a batch
of data points.
Take a look at
BCGPChartDemo |
Large Volume
Charts | Huge
Data to see this
feature in
action.
-
CBCGPChartAdvancedFormula
output
series now takes
advantage of
"optimized long
data" feature,
which allows to
increate
performance and
reduce memory
consumption. Set
CBCGPChartAdvancedFormula::m_bUseLongData
to FALSE before
creation of
output series to
use "regular"
data points.
-
Added support
for tooltips
(see
screenshot).
Call
CBCGPChartCtrl::EanbleTooltip
to enable
tooltips for a
chart control.
You can override
CBCGPChartSeries::OnGetDataPointTooltip
to customize
tooltip text for
a specific data
point. You can
override
CBCGPChartVisualObject::OnGetToolTip
to customize
a tooltip
displayed at
specified client
coordinates.
-
You can
customize series
fill opacity by
calling
BCGPChartFormatSeries::SetSeriesFillOpacity.
-
Added new
notifications
about axis zoom
and scroll
actions: chart
control's owners
will receive
BCGM_ON_CHART_AXIS_ZOOMED
and
BCGM_ON_CHART_AXIS_SCROLLED
messages. Also
you can override
OnAxisZoomed
and
OnAxisScrolled
overrides in
CBCGPChartVisualObject.
-
CBCGPChartAxis
has two new
members
m_szMaxFixedLabelSize
and
m_strMaxDisplayedLabel.
The first member
allows to
specify maximal
axis label size
(in pixels),
which won't be
overridden by
internal
calculations.
The second
allows to
specify a label
whose size will
be used as
maximal label
size.
-
Output series
type
encapsulated in
CBCGPChartAdvancedFormula
can be
customized by
overriding of
GetOutputSeriesType
and
GetOutputSeriesCategory
methods.
-
CBCGPChartObject
has a new
coordinate
mode
CM_PIXEL_FIXED_SIZE.
Now you can
add objects of
fixed
size to
the diagram area
and specify
object size
and position in
pixels.
-
CBCGPChartLongSeries
has a new
method
GetNearestScreenPoint,
which calculates
position for
interactive
markers.
-
Chart View
correctly
handles Windows
7 task bar
interaction.
-
Pan mode
correctly
scrolls
different series
displayed on
different axes.
- Added a new
Tag Cloud
control (see
screenshot). This
control is a visual
representation for
text data ("tags")
and the importance
of each tag is shown
with font size or
color. The control
implements the
following features:
-
Unlimited number
of tags.
-
Alphabetical
sorting.
-
Sorting by
value.
-
Customizable
text color.
-
Customizable
text format.
-
Tooltip support.
-
Visual Designer
for Gauges
(see
screenshot)
-
Now you can
create
top-quality
digital
dashboards using
the new WYSIWYG
design tool in
minutes!
-
Arrange gauges
on the design
surface and
change their
properties.
-
Save your
dashboard to XML
and load it in a
C++ application.
-
See the updated
BCGPGaugesDemo
to learn how to
integrate
designed
dashboards with
your
application.
- Graphics
Manager
-
CBCGPGeometry
supports 2
filling methods
now: alternate
or winding.
GetFillMode/SetFillMode
methods were
added to this
class.
- New static
method
CBCGPColor::CreatePalette
creates palette
from the colors
array.
-
CBCGPColor::GetRGBArray
returns colors
array in order
suitable for
displaying in
14-columns grid
(see
screenshot).
- CBCGPBrush
has '=='
operator now.
- Added
CBCGPBrush::SetOpacity
method.
-
CBCGPTextFormat:
added character
set support.
This class has a
new constructor
and GetCharSet
and
CharSetToLocale
new methods.
-
CBCGPGraphicsManager::CleanResources
has new,
optional
parameter 'BOOL
bDetach'.
Setting this
parameter to
TRUE allows to
detach graphics
resources from
the manager.
- Added
content scaling
support:
CBCGPGraphicsManager
has new methods:
SetScale/GetScale
-
New
controls and dialogs
-
CBCGPEditBrushDlg
(see
screenshot)
allows to edit
CBCGPBrush
properties.
-
Added Line style
combobox control
-
CBCGPLineStyleComboBox
-
Added Brush
button -
CBCGPBrushButton
-
CBCGPTextFormatDlg
(see
screenshot)
allows to edit
CBCGPTextFormat
properties.
- Gauges
- CBCGPColorIndicatorImpl
has new
constructor
where you can
specify
background
brush.
-
CBCGPTextGaugeImpl
has new
constructor
where you can
specify
background
brush.
-
CBCGPBaseVisualObject
has new virtual
method 'OnMouseDblClick'
-
CBCGPVisualContainer
has new methods
'GetByID' and 'LoadFromFile'
- Grid control
- New method
CBCGPGridCtrl::EnableGridLines
is used to
disable grid
lines in the
grid control.
- New method
CBCGPGridCheckItem::SetLabel
allows to draw
text label
inside
checkbox-item.
- Miscellaneous
additions
- CBCGPMemDC
has new,
optional
parameter 'dblScale'.
You can create
the memory DC
with ability to
scale it.
- Improved
CBCGPButton's
focus rectangle
appearance when
control is
located on Aero
("glass") area.
- CBCGPDrawManager
has new method 'DrawFocusRect'
which allows to
draw focus
rectangle on
Aero.
- CBCGPInplaceToolTipCtrl
utilizes Visual
Manager tooltip
drawing now.
- Added pin,
description and
separator
support for
CBCGPListBox.
The following
new methods were
added to
CBCGPListBox
class:
-
EnablePins
- HasPins
-
EnableItemDescription
-
HasItemDescriptions
-
SetItemDescription
-
SetItemPinned
-
IsItemPinned
-
ResetPins
-
AddSeparator
-
IsSeparatorItem
-
OnClickPin
-
OnClickItem
-
OnReturnKey
- Examples and samples
- BCGPChartExample has the following additions:
- "Advanced Features | Scale Breaks"
illustrates the new "scale breaks" feature.
- "Large Volume Charts | Huge Data"
demonstrates the performance of "optimized long
data mode".
- "Large Volume Charts | Huge Average Data"
shows how to add interactive markers to
BCGPChartLongData chart.
- "Large Volume Charts | Virtual Chart"
describes the technique required to create
virtual charts, where the data is taken from an
external source.
- "Stock Charts" demonstrate new
technical indicators.
- BCGPGaugesDemo shows how load dashboard from the
Visual Designer data file.
- BCGPGridExample show how to create grid control
with watermark image
(see
screenshot).
- The following new samples were added:
- BCGPDiagramDemo: demonstrates how to use new
Diagram Control.
- PropertyGridMDIDemo: demonstrates new
property grid features and how to use the
property grid in MDI application.
- TagCloudDemo: demonstrates new Tag Cloud
control.
|
|
Fixes: |
- CBCGPCircularGaugeCtrl::CreateCustomGauge correctly
updates control owner now.
- Fixed bug with image transparency in
CBCGPEdit::SetBrowseButtonImage method.
- CBCGPGraphicsManagerD2D::DrawText correctly draws
text in non-UNICODE applications now.
- Fixed bug in CBCGPGridCheckItem with SPACE button.
Disabled CBCGPGridCheckItem does not modify state of the
checkbox on pressing SPACE.
- Fixed bug in the grid with painting the selection
border in virtual mode.
- Fixed bug in CBCGPGridCtrl:: FindRowByData. The
second parameter bSearchSubItems is used properly now.
- Fixed bug with grid item drag and drop. The click at
the button inside the grid item does not start dragging
now.
- Fixed bug in CBCGPGridCtrl::SetCurSel with selecting
all content. The grid with no selected item processes
"SelectAll" command properly now.
- Radar chart correctly displays categories.
- Fixed a problem when a chart axis was incorrectly
truncated because of incorrectly specified scroll range
(CBCGPChartAxis::SetScrollRange). Now a larger scroll
range can't be overridden by smaller range. To reset a
scroll range and specify smaller values reset it by
calling SetScrollRange without parameters.
- 3D charts correctly display axis names (now they are
aligned to axes and rotated with chart).
- Fixed infinite loop in
CBCGPChartAxis::ApproximateValue.
- Fixed incorrect calculation of axis scrollbar thumb.
- Polar X axis correctly handles ValueFromPoint
requests.
- CBCGPChartCtrl::CreateCustomChart automatically sets
an owner of newly created chart visual object.
- Interline coloring effect is correctly clipped when
chart is zoomed in.
- Chart in history mode does not display empty data
point at the last X coordinate.
- CBCGPChartHistoricalLineSeries displays history from
X = 0 (it was 1 in previous version).
|
|
Version 16.1. Released 10/17/2011 |
|
New features |
- The product is ready for Windows 8!
All product functionalities were thoroughly tested under
Windows 8 preview. Few minor bugs addressed to Windows 8
have been fixed and we confirm that our product is ready for
use in this new operating system.
- Visual Studio 2011 Developer Preview support.
For your convenience we added
project/solution files for Visual Studio 2011, so if you
begin porting your projects to the new Visual Studio, our
library is ready for this. Also, we've updated our
Integration Wizard - now it includes support VS 2011.
Please note that Visual Studio 2011 support currently is
available for the retail version only.
- Chart Control implements new and
updates existing features:
- Enhanced custom axis support. Now you can add a
custom axis using CBCGPChartAxis::Split method at
the top or at the bottom of the axis being split
(see a new optional parameter bCustomAxisAtTop).
- Added a new method
CBCGPChartVisualObject::RemoveCustomAxis.
- Added a new axis cross type
CBCGPChartAxis::CT_FIXED_DEFAULT_POS, which makes an
axis to be fixed at its default position at the edge
of plot area.
- Created infrastructure for custom financial
indicators:
- A new CBCGPChartAdvancedFormula class can be
used as a base class for custom indicators.
- CBCGPChartSeries::GetDataBuffer allows to store
intermediate calculations for each data point in a
series. You can allocate unlimited number of
buffers.
- Implemented several technical indicators in the
following new classes:
- CBCGPChartMAFormula implements moving averages
(simple, exponential, smoothed, linear weighted)
- CBCGPChartStochasticFormula implements
Stochastic Oscillator
- CBCGPChartRSIFormula implements RSI indicator
(smoothed, exponential, simple).
Please take a look at CBCGPChartExample | Stock
Chart to see the new indicators and custom axis
support in action (see
screenshot).
- Added "Manhattan Stacked Column" chart type (see
screenshot). To enable this kind of charts you have
to use the new CBCGPChartDiagram3D::SetExplicitGrouping
method.
- CBCGPChartExample | Advanced Features | Custom
Axis illustrates how to add a standalone custom axis
(see
screenshot)
- Grid Control implements the following
new features:
- The following methods are virtual now:
- CBCGPGridCtrl::StartSelectItems
- CBCGPGridCtrl::SelectItems
- CBCGPGridCtrl::StopSelectItems
- Added a new optional parameter bUpdate to
CBCGPGridCtrl::EnableFilterBar method
- Graphics Manager
- CBCGPGraphicsManager::CreateInstance has a new
optional parameter: CBCGPGraphicsManagerParams*
pParams. Using this new parameter you can specify
the target DPI, alpha mode and rendering type
|
|
Fixes: |
- CBCGPChartAxis::Split correctly splits multiple
axes.
- Fixed problem with appearance of 32 bit images in CBCGPBaseVisualCtrl::OnDrawLayeredPopup
under Windows 8.
- Fixed problem with incorrect circular gauge shape in
specific scale angles.
- Fixed problem with Grid Filter bar drawing in
"freeze columns" mode.
- Now CBCGPButton::m_clrFace is used when a button has
a Visual Manager theme.
|
|
Version 16.0. Released 07/26/2011 |
|
New features |
- Chart Control has been extended
with the following new 3D chart types:
- Column in 3D: "Manhattan" (see
screenshot), regular (clustered),
stacked (see
screenshot), 100% stacked, ranged.
- Surface: "regular" and "level"
(see
screenshot).
- Line in 3D: regular (see
screenshot), stacked, 100% stacked.
- Area in 3D: regular (see
screenshot), stacked, 100% stacked,
ranged (see
screenshot).
- Bar in 3D: "Manhattan" (see
screenshot), regular (clustered),
stacked, ranged and 100% stacked (see
screenshot).
The new 3D charts support software and
hardware (OpenGL-based) rendering.
You can see the new chart types in action in the updated
CBCGPChartExample. Also, please visit our new
Charts Gallery and see how many professional and
nice-looking charts you can create using our toolkit.
- Grid Control implements the following
new features:
- Multi-line text support for grid
items (see
screenshot): word wrapping, understanding "\r\n" line breaks,
multiline in-place editor, horizontal and vertical
align, printing. Please take a look at BCGPGridExample
to see this feature in action.
- Added ability to subclass the default
grid header by overriding the virtual GetColumnsInfo()
function.
You can learn how to extended a grid header with two
header lines and merged header items in BCGPGridExample,
"Multi-Line Header" tab.
- Added ability to animate a grid item
content - see BCGPGridExample, "Cell Types" tab.
- Gauge components have the following new
interactive controls:
- Knob (see
screenshot)
- Radial menu (see
screenshot)
- Rotation control (see
screenshot)
- Analog clock (see
screenshot) (in previous versions this control was
implemented in examples code).
- Added gauges tooltip support.
- Added interactive gauge support:
- SetInteractiveMode/IsInteractiveMode methods were
added to CBCGPGaugeImpl class.
- BCGM_ON_GAUGE_START_TRACK,
BCGM_ON_GAUGE_TRACKBCGM_ON_GAUGE_FINISH_TRACK and
BCGM_ON_GAUGE_CANCEL_TRACK registsred messages were
added.
- New structure CBCGPGaugeTrackingData contains gauge
tracking data such as last tracking message, screen
point and current gauge value.
- CBCGPLinearGaugePointer has the following new
styles:
- BCGP_GAUGE_NEEDLE_CIRCLE
- BCGP_GAUGE_NEEDLE_DIAMOND
Using these new controls and features you can easily create
fully-functional, interactive digital dashboards. Please run BCGPGaugesDemo to see these
features in action.
- Calendar and Planner
- Added working interval support:
CBCGPPlannerManagerCtrl::SetViewHourInterval and
CBCGPPlannerManagerCtrl::SetPrintHourInterval method
were added.
- Added ability to customize "Up"/"Down" icons
- Graphics Manager
- CBCGPImage can be initialized from HICON and
HBITMAP now
- Added method
CBCGPGraphicsManager::DrawBeveledRectangle
- Examples and samples
- For your convenience, all examples and samples
were prepared for Visual Studio 2010. Please open
MakeExamplesVS2010.sln
solution to build them without conversion in Visual
Studio 2010 environment.
- BCGPChartExample illustrates new 3D
charts.
- BCGPGaugesDemo shows how to create
the new knob and radial menu gauges.
|
|
Fixes: |
- Fixed some problems in Chart Control.
- Fixed problem with drawing CBCGPBreadcrumb on the
DWM aero area.
- Fixed problem with drawing CBCGPScrollBar on the DWM
aero area.
- Fixed memory/resource leak in graphics manager
gradient brush initialization.
- CBCGPLinearGaugeImpl: fixed some problems with gauge
appearance under Windows XP (in GDI mode).
- Fixed bug with displaying incorrect value in
CBCGPCalculator::UpdateDisplay.
- Fixed bug in CBCGPDlgImpl::LoadPlacement/SavePlacement:
the dialog location is restored correctly now when the
Windows task bar is located on the left or top side.
|
|
Version 15.1. Released 03/01/2011 |
|
New features |
- Chart Control:
- The following new chart types were added:
- Added support for logarithmic scales of any base
(see
screenshot).
- Added trend line support with the following built-in
approximations (see a new class CBCGPChartTrendFormula):
- Linear
- Exponential
- Logarithmic
- Power
- Polynomial of order 2 - 6 (see
screenshot).
- Transition (formula) support (see
screenshot) has been implemented in
a new class CBCGPChartTransitionFormula. It can take
several input series and generate data points using
either built-in transitions (sum, diff, multiply,
divide, average etc), or custom transitions (you can
specify a callback implementing a custom formula).
- Virtual series (see
screenshot) support allows to display any custom
function on the diagram.
- "Chart Objects" feature (see
screenshot) allows you to add annotation
and other objects (like lines or colored zones) to a
Chart or diagram. The following new classes were added
for this feature:
- CBCGPChartObject
- CBCGPChartLineObject
- CBCGPChartRangeObject
- CBCGPChartTextObject
- CBCGPChartAxisMarkObject.
The main Chart controller (CBCGPChartVisualObject)
provides the following helpers to allow you to add Chart
Objects quickly using the following methods: AddChartObject, AddChartTextObject,
AddChartLineObject, AddChartRangeObject and AddChartAxisMarkObject.
- "Chart Effects" feature enables you to add interline
coloring effects to a diagram (see
screenshot). See new classes CBCGPChartBaseEffect, CBCGPChartInterLineColoringEffect.
- Axes can display scroll bars (see
screenshot). Use two new methods ShowScrollBar and SetAlwaysShowScrollBar defined in
CBCGPChartAxis, or helpers defined in
CBCGPChartVisualObject: ShowScrollBar (enables scroll
bar for a given axis) and ShowScrollBars (enables scroll
bars for all axes).
Please take a look at BCGPChartExample program to see
these features in action.
- Linear Gauge (see
screenshot)
has been added to the Gauges collection: the new class CBCGPLinearGaugeImpl implements the linear gauge. Please
take a look at BCGPGaugesDemo to see the gauges in action.
- Added ability to save/load Dialogs and Property
Sheets window placements. The following methods have
been
added:
- CBCGPDialog::EnableLoadWindowPlacement
- CBCGPPropertySheet::EnableLoadWindowPlacement
Please take a look at ResizableForm sample program to
see this feature.
- Grid additions:
- Added Find support - the following new methods
have been added to the CBCGPGridCtrl class:
- OpenFindReplaceDlg
- CloseFindReplaceDlg
- Find
- OnPrepareFindString
- OnTextNotFound
- OnTextFound
Please take a look at BCGPGridExample to see this
feature in action.
- Added a new virtual method 'CBCGPGridCtrl::OnAfterInplaceEditCreated
which is called right after the in-place edit has
been
created.
|
|
Fixes: |
- CBCGPGridCheckItem now can print a check mark.
- Fixed painting of the right side of the grid header.
- Fix in CBCGPGridCtrl::OnLButtonUp for disabled grid
items.
- Fixed a problem with drawing rotated texts using CBCGPGraphicsManagerGDI.
- Fixed problem with drawing dates with year less than
1900 in CBCGPDateTimeCtrl and CBCGPCalendar under VS
2005 and higher.
- Fixed some problems in Chart Control.
|
|
Version 15.0. Released 12/20/2010 |
|
New features |
- New Chart Control (see
screenshot) - the most advanced and professional
chart on the MFC market today! This chart control offers
a wide range of the different chart types:
- Line
- Area
- Bar and Column
- Pie
- Pyramid
- Funnel
- and lot of others!
Please browse our
Feature Tour for the full list of the chart features
and take a look at the new example BCGPChartExample to
see the Chart in action.
- New Gauge Controls (see
screenshot). The library implements various types of
gauges that help a developer to create high-quality,
fast and beauty digital dashboards. The following gauge
types are implemented:
- Circular Gauges.
- Numeric Indicators.
- Color Indicators.
- Text Labels.
- Image Indicators
Please browse our
Feature Tour for the full list of gauge features and
take a look at the new example BCGPGaugesDemo to see the
gauges in action.
- Added D2D support. A new class
'CBCGPGraphicsManagerD2D' implements D2D backend. It
exposes various methods for easy access to D2D and
DirectWrite interfaces. All graphics primitives like
lines, rectangles, ellipses, geometries, arcs, pies,
pyramids and texts can be easily drawn with D2D speed
and quality using just few lines of code. Also we added
a new class 'CBCGPGraphicsManagerGDI', which can be used
on OSs that do not support D2D (for example, Windows XP
or Windows 2000). The base class CBCGPGraphicsManager
automatically creates GDI manager if it detects an older
OS (where D2D is not supported).
- New Editor language schemes (see
screenshot). Outline parser customization was
extended. Added new Lexeme::m_dwData,
BlockType::m_dwData members. Extended LexemType
enumerator.
BCGPVisualStudioGUIDemo example
demonstrates how to implement the following schemes
using new mechanism:
- C++
- HTML
- BASIC
- Pascal
- C#
- Assembler
- XML
- SQL
- Added description to CBCGPButton (see
screenshot): CBCGPButton::SetDescription/
CBCGPButton::GetDescription methods have been added.
- Grid changes:
- The class CBCGPGridItemID has new state {m_nRow
= -2, m_nColumn = -2} which indicates the selection
of the whole content. New methods:
CBCGPGridItemID::SetAll, CBCGPGridItemID::IsAll.
CBCGPGridItemID::IsNull was modified.
- CBCGPGridItem::Init and CBCGPGridItem::SetFlags
are now virtual.
- Added CBCGPGridCtrl::IsColumnBeingResized
function.
- Added option to disable quick sorting. To return
to the previous ("bubble") sorting implementation
please use new CBCGPGridCtrl::m_bUseQuickSort
member.
- Added CBCGPGridCtrl::NormalizeSelectionList,
CBCGPGridCtrl::RemoveSelectedRows,
CBCGPGridCtrl::Delete,
CBCGPGridCtrl::IsDeleteEnabled functions.
- Added mechanism to customize colors alternating.
Please override virtual BOOL OnAlternateColor (const
CBCGPGridItemID& id) to specify if an item has odd
or even color.
- Improved performance of the grid with many
columns. Changed implementation of
CBCGPGridColumnsInfo class, changed the internal
column's container.
- Changes in Examples and Samples:
- Added a new example BCGPChartExample
that demonstrates Chart features.
- Added a new example BCGPGaugesDemo
that demonstrates Gauges features.
- BCGPGridExample has been updated to
illustrate how to create a Chart within a merged
cell.
|
|
Fixes: |
- CBCGPDateTimeCtrl doesn't show drop-down calendar if
control is disabled.
- CBCGPGridCtrl: fixed some problems with mouse wheel.
- CBCGPGridCtrl: Changed implementation of the "merged
cells" feature.
- CBCGPGridCtrl: fixed print pagination bug, the bug
appeared if a column width was larger than a print page.
- Fixed CBCGPEditCtrl::LoadXMLSettingsFromBuffer. "EscapeSequences"
tag of XML-settings file works now. "Start" and "End"
tags can contain delimiters now.
|
|
Version 12.0.
Released 04/14/2010 |
|
New features |
- The product is fully compatible with Visual Studio
2010.
- Added a new class CBCGPVisualManagerVS2010,
which
implements Microsoft Visual Studio 2010 look (see
screenshot).
In addition, a new class CBCGPVisualManagerVS2010 (Visual
Studio 2008 only) implements Visual Studio 2008 look.
You can run BCGPVisualStudioGUIDemo example to examine this new fresh look!
- Implemented Resizable Dialogs support (see
screenshot1
and
screenshot2):
- Added 2 new classes:
- CBCGPControlsLayout: implements the
base class for all layout managers.
- CBCGPStaticLayout: implements
"static" layout management based on anchors.
- To enable layout support, you've to call
EnableLayout/GetLayout methods in the following
classes:
- CBCGPDialog
- CBCGPDialogBar
- CBCGPropertyPage
- CBCGPFormView
Please run ResizableForm new sample to see this feature in action.
In addition, you can see this feature in the following
examples and samples:
- BCGPOrganizer: resizable dialog bar.
- ToolBoxDemo: resizable form
- Added Vista-style Breadcrumb control (see
screenshot).
Please take a look at new sample BreadcrumbDemo and BCGPMediaPlayer example to see this control
in action and learn how to add it to your application.
New classes CBCGPBreadcrumb and CBCGPShellBreadcrumb
implement this control. The following new methods have
been
added to CBCGPVisualManager class:
- BreadcrumbFillBackground
- BreadcrumbDrawItemBackground
- BreadcrumbDrawItem
- BreadcrumbDrawArrowBackground
- BreadcrumbDrawArrow
- BreadcrumbDrawLeftArrowBackground
- BreadcrumbDrawLeftArrow
- Calculator control has been significantly
improved:
- All calculator buttons are drawn using built-in
bitmaps and use visual manager appearance (see
screenshot).
- Implemented extended commands. Using a new method CBCGPCalculator::SetExtendedCommands developers can add a
lot of build-in calculator commands such as idCommandAdvSin, idCommandAdvCos, idCommandAdvTan and
others.
Please take a look at CalculatorDemo and SkinnedDialog samples to see these new
features in action.
- CBCGPPropertySheet has a new mode:
PropSheetLook_AeroWizard (see
screenshot). In general, this mode has been designed
and implemented for Vista/Windows 7 Aero, but you can
use it in any OSs/modes (see
screenshot). The glass (aero) area can be combined
with a page header - we've added a new optional
parameter 'bDrawHeaderOnAeroCaption' to EnablePageHeader
method. Please take a look at PropSheetDemo sample to
see this mode.
- Grid and Report controls changes:
- Added option to select items by clicks on grid header: New
header flag BCGP_GRID_HEADER_SELECT.
- Improved grid printing support. The following
new classes were added:
- CBCGPGridPage class: this class is
used by the grid control to store print pages.
A print page specifies which area of the grid is
printed at the specified page. The grid counts
in items in vertical direction. The grid counts
in pixels in horizontal direction.
- CBCGPGridPageInfo class: This class
is used by the grid control to store information
about the printing range and the currently
printing page. It is stored in
CBCGPGridCtrl::m_PrintParams::m_pageInfo member
and in CPrintInfo::m_lpUserData member of the
CPrintInfo object used while printing at the
current print session.
- Added an option to deselect items. To deselect
an item
please use SetCurSel with SM_INVERT_SEL flag. New
functions were added:
- CBCGPGridCtrl::EnableInvertSelOnCtrl
- CBCGPGridCtrl::IsInvertSelOnCtrlEnabled
- Changes in header click events: New
BCGM_GRID_COLUMN_CLICK message. Added CBCGPGridCtrl::OnHeaderColumnRClick. Modified
CBCGPGridCtrl::OnHeaderColumnClick.
- Items align support: New CBCGPGridItem::GetAlign
function. Item's alignment is specified by CBCGPGridCtrl::SetColumnAlign.
- Grid horizontal pagination support. Added
CBCGPGridPage::m_nWidth - page width, CBCGPGridPageInfo::m_nPageWidth - width of currently
printed page. See CBCGPGridPage class,
CBCGPGridPageInfo class.
- Drag-and-Drop support (see new "Drag and Drop"
tab in BCGPGridExample sample):
- New message BCGM_GRID_BEGINDRAG.
- Added methods EnableDragSelection,
IsDragSelectionEnabled,
EnableDragSelectionBorder,
IsDragSelectionBorderEnabled, StartDragItems and
HitTestSelectionBorder.
- Extended in-place edit customization support
(see new "Easy Input" tab in BCGPGridExample
sample):
- New messages BCGM_GRID_ITEM_BEGININPLACEEDIT,
BCGM_GRID_ITEM_ENDINPLACEEDIT.
- New functions OnBeginInplaceEdit,
OnEndInplaceEdit, CanBeginInplaceEditOnChar,
CanEndInplaceEditOnChar, OnInplaceEditKeyDown,
OnInplaceEditSetSel.
- New BCGPGRID_ITEM_INFO::dwResultCode member.
See BCGPGRID_ITEM_INFO struct.
- New method SetClearInplaceEditOnEnter. Call
SetClearInplaceEditOnEnter (FALSE) to disable
grid from clearing content of the item on Enter.
- Added CBCGPGridCtrl::GoToNextItem method.
- CBCGPGridCtrl::EnsureVisible is now virtual.
- Added navigation by TAB (Shift+TAB) key.
- Added "Ctrl+Z" (Undo) handler for in-place edit
of the grid item.
- Changes in CBCGPGridCtrl::SetCurSel for
SM_SET_ACTIVE_ITEM style.
- Grid item with combo-box now supports F4 to open
drop-down list.
- CBCGPGridItem has a new virtual method:
NewInPlaceEdit. Override this method if you need to
create your own in-place edit control.
- Added new protected function OnGetColumnAutoSize. It
allows to customize the column auto-size feature in the
CBCGPGridCtrl-derived class.
- Editor enhancements:
- CBCGPEditCtrl::ExportBuffer has a new optional
parameter 'BOOL bForceAnsi'. Setting it to TRUE forces
exporting editor's text in ANSI format.
- Added new function GetCurLine (CString& strLine).
- Added new member m_bEnableCurrentLineCopy. Setting
this flag to TRUE allows to copy the current line to the
clipboard if there is no selection. It works similar to m_bEnableWholeTextCopy.
- Gantt chart enhancements:
- CBCGPGanttView: new virtual methods 'OnCreateChart'
and 'OnCreateGrid' have been added. Override these methods if
you wish to create your own Gantt view panes.
- Added new registered messages:
- BCGM_GANTT_CONTROL_CREATE_CHART: allows using custom
chart control. Sent when the Gantt control creates a
chart.
- BCGM_GANTT_CONTROL_CREATE_GRID: allows using
custom grid control. Sent when the Gantt control creates
a grid.
- New virtual method CBCGPGanttChart::QueryRenderer
allows to override the Gantt rendering.
- Skinned dialogs enhancements and improvements:
- Improved appearance of disabled CBCGPStatic control.
- CBCGPStatic has a new member: m_clrText. You can set
this member to colorize text labels (see SkinnedDialog sample).
- Multi-line text is vertically centered now in
CBCGPButton control.
- Radio button is correctly painted now when
BS_AUTO3STATE is not defined.
- CBCGPComboBox doesn't "eat" CBN_CLOSEUP and
CBN_DROPDOWN notifications: ON_CONTROL_REFLECT_EX is
used instead of ON_CONTROL_REFLECT now.
- Added support for drawing CBCGPComboBox control with
CBS_SIMPLE style.
- CBCGPPropertySheet adjusts correctly the window size
when the property sheet header is enabled.
- Added support for PSM_SETWIZBUTTONS and
PSM_SETFINISHTEXT messages in CBCGPPropertySheet
- The method 'EnableVisualManagerStyle' (in
CBCGPFormView, CBCGPDialog, CBCGPDialogBar and
CBCGPPropertyPage classes) has a new optional parameter:
plstNonSubclassedItems - the list of IDs that shouldn't
be automatically subclassed.
- DS_CONTEXTHELP style is not used now in
CBCGPropertySheet window.
- The check box height is calculated correctly now
when CBCGPButton is created in High DPI mode.
- Added CBCGPCalendarBar::GetState method - returns
the calendar style flags specified in SetState method.
- CBCGPProgressDlg::StepIt has a new, optional
parameter 'bWaitForMessages'. Set this parameter to
FALSE in order to prevent unnecessary message waiting.
- Changes in examples and samples:
- BCGPGridExample: added new visual managers and
2 new tabs: "Drag and Drop" and "Easy Input"
- BCGPVisualStudioGUIDemo: demonstrates new visual
managers: VS 2008 and VS 2010
- PropSheetDemo: added Aero Wizard demonstration.
- ResizableForm: new sample, demonstrates how to
use a new layout manager along with dialogs, dialog
bars, property sheets and form views.
- SkinnedDialog: added edit box with calculator
and text labels with a custom colors.
- BreadcrumbDemo: new sample, demonstrates
breadcrumb navigation control.
|
|
Fixes: |
- CBCGPGroup properly handles WM_SETTEXT message
now.
- CBCGPCalendar always closes dropped-down month
picker when the calendar is being destroyed.
- Fixed problem with text alignment in grid columns.
CBCGPGridCtrl::SetColumnAlign is working properly now.
- Fixed problem with scrolling CBCGPCalendar and
CBCGPDateTimeCtrl dates outside the allowed year range
(between 100 and 9999).
- Fixed bug with using different horizontal color and
vertical color for the grid lines. The m_clrVertLine
setting did not work when m_bGridItemBorders flag was
switched on.
- Fixed problem with clicking on CBCGPGridURLItem in
read-write mode.
- Fixed a bug with automatic sizing of grid columns. The bug
appeared when auto-sizing was enabled with EnableColumnAutoSize(TRUE).
- Fixed bug with "Ctrl+A" for in-place editing of
grid items. "Ctrl+A" selects all
text inside in-place editor during in-place editing,
instead of the entire grid as
before.
- Fixed memory leak in
CBCGPGridCtrl::CopyHtmlToClipboardInternal.
- Fixed some drawing problems in CBCGPButton: when
check box has BS_TOP or BS_BOTTOM style, the text is
correctly positioned now.
|
|
Version 10.21.
Released 10/28/2008 |
|
New features |
- The product is adapted for Visual Studio 2008
Service Pack 1.
- A new class 'CBCGPMessageBox' has been added.
This class enhances the standard Windows Message Box
component (see
screenshot).
The following features are provided out of the box:
- Office 2003/2007 look
- Custom look
- Custom icons and buttons
- Check box control
- Left and right text alignment
Please take a look at
the
new MessageBoxDemo sample to see this class
in action.
- Implemented a lot of improvements and fixes in the
Grid control:
- Added Left Header (see
screenshot). You can use this column to display
either currently selected row or row numbers. Please
call a new method 'EnableRowHeader' to
enable/disable this column and 'EnableLineNumbers'
to show/hide the row numbers.
- Copy to HTML support (see
screenshot). The grid control allows to export
selection or the whole content to the clipboard in
"HTML Format". Please see BCGPGridExample sample.
New CBCGPGridCtrl::Copy function has been added.
- CBCGPGridCtrl::SetCurSel method is virtual now.
- Added functions to work with selection:
SelectRow, SelectAll, IsAllSelected,
GetSelectionCount.
- Added CBCGPGridCtrl::InsertRowBefore.
- Added CBCGPGridCtrl::OnGetColumnMinWidth to
specify the minimal width of the column
- Added "frozen" columns support. The following
new methods have been added to the grid control:
- FreezeColumns: This function enables the "frozen
column" feature, which allows to keep columns visible
while the rest of columns are scrolled horizontally.
- UnfreezeColumns: disables the "frozen columns" feature.
- Added read-only mode to CBCGPGanttControl: use a new
method SetReadOnly to enable/disable this mode and
IsReadOnly to whether a Gantt control is in read-only
mode.
- CBCGPDialog::SetBackgroundImage supports PNG images
now.
- CBCGPPropertySheet has a new mode now:
PropSheetLook_Wizard (see
screenshot).
- CBCGPPropertySheet tree mode has a new look (see
screenshot): the left-side tree control displays lines,
and tree nodes are not "auto-collapsed" now. If you wish to
keep the former look, please set the static variable CBCGPPropertySheet::m_bUseOldLookInTreeMode to TRUE.
- Added support for Help ("?") caption button in the
skinned dialogs and property sheets.
- CBCGPPropertySheet::EnableVisualManagerStyle and
CBCGPDialog::EnableVisualManagerStyle have a new,
optional parameter 'bNCArea'. Pass 'TRUE' if you
wish to display your dialog or property sheet with
skinned borders and caption (see
screenshot).
|
|
Fixes: |
- Fixed a lot of bugs in the skinned controls and
dialogs:
- CBCGPStatic redraws itself when control is being
enabled/disabled
- CBCGPGroup handles WM_UPDATEUISTATE message. This
fixes some redrawing bugs.
- CBCGPButton: fixed some drawing bugs in check box
and radio button modes.
- CBCGPDialog and CBCGPPropertySheet handle WM_SETTEXT
message and redraws the dialog caption now.
- CBCGPPropertySheet adjusts the property sheet
buttons when "Apply" button is clicked.
- CBCGPEdit::OnNcPaint draws the control border only
if control has 'WS_BORDER' style.
- The skinned caption height is calculated correctly
now in CBCGPDialog and CBCGPPropertySheet. If the window
has 'WS_EX_TOOLWINDOW' style, the caption height
is calculated properly now.
- CBCGPButton supports 3-state check boxes now.
- CBCGPButton allows to subclass multi-line and
right/center aligned check boxes and radio buttons.
- The dialog group box is painted correctly now when
the group caption is empty.
- Tooltip position for CBCGPGridColorItem is
calculated properly now.
- Fixed bug with tabs and indenting in the editor, fix
in CBCGPEditCtrl::InsertTab.
- Mouse double click to select one word in the editor
works properly now.
- CBCGPEdit doesn't "eat" EN_CHANGE notification.
- Fixed some visual bugs with drawing connectors in Gantt
control.
- Improved performance of the Gantt storage: a developer
can load a large amount of items.
- CBCGPGridCtrl: fixed bug with assertion failed in
debug when only one column is visible.
- CBCGPEditCtrl: Fixed bug in GetLine: the previous version
truncated the last character in line.
|