A masked edit control

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

Download Source Code

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

More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read