BCG Time Controls

CodeGuru content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

Environment: MS Visual C++ 5.0 with the SP3
 

Set of four time ActiveX controls:

  • Date/Time Picker
  • Month Calendar
  • Duration Control
  • Time Intervals Control

Installation notes:

  1. Unzip BCGTimeControls.zip file (e.g. c:\bcg directory)
  2. Go to output\release directory and register all controls
    (regsvr32 BCGDateTime.ocx, regsvr32 BCGDurationCtrl.ocx
    and regsvr32 BCGTimeIntervals.ocx)
  3. Run BCGTimeExample.exe

Date/Time Control Properties and Methods:

Name Description
Date Date Date/Time value
DATE MinDate Min. allowed date
DATE MaxDate Max. allowed date
boolean CheckButton Show check box
boolean DropCalendar Show Drop-down calendar arrow
boolean ShowDate Show control’s date part
boolean ShowTime Show control’s time part
boolean SpinButton Show up/down arrows
boolean WantReturn If WantReturn
is true, control catches ENTER/ESC keys and fires OnEnter/OnCancel
events
void SizeToContent() Adjust control size according
to attributes. Should be called in OnInitDialog (VB –
Form_Load)

Date/Time Control Events:

Name Description
OnDateChanged Indicates that Date
property was changed
OnSetFocus Indicates that control received
focus
OnKillFocus Indicates that control lost
focus
OnEnter Enter key was pressed (fired if
WantReturn property is true)
OnCancel Esc key was pressed (fired if WantReturn
property is true)

Calendar Control Properties and Methods:

Name Description
boolean MultiplySelection Allow multiply days selection
boolean AbsoluteSelectionMode When this property is true, the
selected days are saved when user changes the month;
otherwise, control saves the weekdays
OLE_COLOR BackgroundColor Calendar background color
OLE_COLOR ForegroundColor Calendar foreground color
OLE_COLOR
SelectionBackgroundColor
Background color of the
selected days
OLE_COLOR
SelectionForegroundColor
Foreground color of the
selected days
OLE_COLOR LightColor 3-d edges light color
OLE_COLOR ShadowColor 3-d edges shadow color
void SetSelectedDay(short iDay) Select the day (1-31)
void ClearAllSelections() Clear all day selections
boolean IsDaySelected(short
iDay)
Is day (1-31) selected?
boolean MarkDay(short iDayNum,
boolean bMarked)
Mark the specific day (marked
day is displayed as bold+underline)
void UnMarkAllDays() Clear all day marks

Calendar Control Events:

Name Description
OnSelectionChanged Indicates that selection was
changed
OnDateChanged Indicates that date was changed
(relevant if MultiplySelection property
is false)
OnMonthChanged Indicates that month/year was
changes

Duration Control Properties and Methods:

Name Description
long TotalSeconds Duration
boolean SpinButton Show up/down arrows
BSTR DaysLabel Text appeares after the days
number (default: "Day(s) ")
BSTR HoursLabel Text appeares after the hours
number (default: ":")
BSTR MinutesLabel Text appeares after the minutes
number (default is empty)
boolean ShowDays Show number of days
boolean ShowHoursMinutes Show hours/minutes part
void SizeToContent() Adjust control size according
to attributes. Should be called in OnInitDialog (VB –
Form_Load)

Duration Control Events:

Name Description
void OnDurationChanged(long
lTotalSeconds)
Indicates that duration was
changed

Time Intervals Control Properties and Methods:

Name Description
boolean MergingIsAllowed Time intervals automerge is
allowed
boolean MultiplySelection Multiple selection is allowed
OLE_COLOR IntervalColor Interval background color
OLE_COLOR IntervalTextColor Interval foreground color
OLE_COLOR BackgroundColor Control background color
OLE_COLOR ForegroundColor Control foreground color
boolean AddInterval(DATE
dateFrom, DATE dateTo, short iStatus)
Add a new time interval
(remark: date part of DATE-type parameters are ignored).
Interval’s color will be defined according to interval’s
status (see SetStatusColor method)
boolean ChangeInterval(short
iIndex, DATE dateFrom, DATE dateTo, short iStatus)
Changes the specific time
interval
boolean RemoveInterval(short
index)
Remove the specific time
interval
void RemoveAllIntervals() Remove all time intervals
short GetIntervalsCount() Returns intervals count
boolean GetInterval(short
iIndex, DATE* dateFrom, DATE* dateTo, short* iStatus)
Obtain the specific interval
data
boolean SetIntervalStatus(short
iIndex, short iStatus)
Set the specific interval
status. Interval’s color will be defined according to
interval’s status (see SetStatusColor
method)
void SetStatusColor(short
iStatus, OLE_COLOR color)
Set the specific status’s
color. All time intervals with the given status will be
drawn with this background color
short GetCurSel() Returns selected interval
number or (-1) if no intervals is selected
boolean SetCurSel(short index) Select the specific interval

Time Intervals Control Events:

Name Description
OnAddInterval(short index, DATE
FromTime, DATE ToTime)
New time interval was added by
user
OnChangeInterval(short index,
DATE FromTime, DATE ToTime)
Time interval was moved by user
OnRemoveInterval(DATE FromTime,
DATE ToTime)
Time interval was removed by
user
OnSelectionChanged(short index) Selection was changed

Copyright

These controls are freeware. You can use them in any
application. You can’t use this code in software development
library and/or redistribute the source code without author’s
permission. This code can be used WITHOUT ANY WARRANTIES on your
own risk. You can send bug reports and suggestions to Stas Levin.

 Download Source Code and
Example

History

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read