We had been using the MSMask.ocx control in our MFC application for almost a year.
Recently a 200K memory leak was traced to the setText method (200K each time it
was called), so we downloaded another masked edit class from the web, but it flickered
intensely and the code was kind of icky. Anyway, I decided to write my own. Turns out
it works better than I could have hoped. It’s easy to use and the source code very
simple allowing anyone to extend it as necessary.
In ::OnInitDialog()
m_maskEdit.SubclassDlgItem(IDC_EDIT_MASK, this); // Initialize the control to "State: KS, Zip: 66202-1234" m_maskEdit.setMask("State: ??, Zip: #####-####"); m_maskEdit.setText("KS662021234");
In ::OnOk()
// getText returns "KS66202123" CString strTemp = m_maskEdit.getText(); // GetWindowText yields "State: KS, Zip: 66202-1234" m_maskEdit.GetWindowText(strTemp);