I got this masked edit control code from someone (I can’t remember whom
it was). If anyone wishes to lay claim to the original they are more than welcome.
I have found this quite useful. So I can’t lay claim to doing all or even most of this.
However I have enhanced the code to deal with times as well as dates.
I have also added validation of the keystrokes so that invalid times i.e. >
23:59 are not allowed. (I have limited the time validation to minutes. It would be no
great effort to add in the seconds. Validation for dates is a little more difficult.
Validation is limited to months < 13 and days < 32.
i.e you can put in 31/02/1998 for example.
Ok how to make it work. There are three classes
- CMaskEdit
- CDateEdit
- CTimeEdit
Include the two files MASKED.CPP and MASKED.H in your project.
Also include <afxdao.h> for the COleDateTime features if you already
haven’t. Modify the include line that says #include “myproj” to point to your
project. Create a CEdit control and declare a control variable in your dialog
then modify the CEdit declaration in the class header to say either
CDateEdit or CTimeEdit
CDateEdit:
Pass your time to CDateEdit with
CDateEdit myeditctrl;
myeditctrl.SetDate(COleDateTime var);
and get the edited result back with
COleDateTime var = myeditctrl.GetDate();
CTimeEdit:
Pass your time to CTimeEdit with
CTimeEdit myeditctrl;
myeditctrl.SetTime(COleDateTime var);
and get the edited result back with
COleDateTime var = myeditctrl.GetTime();
and there you have it.
Please feel free to modify any modifications I have made. These are stated
with //added this
Last updated: 15 May 1998