You are using MFC, so you don't need to handle PreTranslateMessage(). Just use the wizard to derive a class, use the message properties to add the WM_CHAR handler, and comment the line calling CDateTimeCtrl::OnChar(). Done with a few mouse clicks. All you need to type in using the keyboard is the name of the drived class, the comment chars, and replacing the CDateTimeCtrl by your class name in your code. The edit control of CDateTimeCtrl is not accessible. So it can't be done in the dialog. Even when it would be possible: It is always better to perform such things in the control rather than in the dialog. So it must be done only once and not within every dialog that uses such a control.