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.
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);