void CBCGPMaskEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { const BOOL bIsReadOnly = ((GetStyle() & ES_READONLY) == ES_READONLY); if (bIsReadOnly) { CBCGPEdit::OnChar(nChar, nRepCnt, nFlags); return; } TCHAR chChar = (TCHAR) nChar; if (_istprint(chChar) && !(::GetKeyState(VK_CONTROL)&0x80)) { OnCharPrintchar(nChar, nRepCnt, nFlags); return; } else if ((nChar == VK_DELETE || nChar == VK_BACK) && (!m_strMask.IsEmpty())) { return; } int nBeginOld, nEndOld; CBCGPEdit::GetSel(nBeginOld, nEndOld); CBCGPEdit::OnChar(nChar, nRepCnt, nFlags); DoUpdate (TRUE, nBeginOld, nEndOld); }
void CBCGMaskEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { if (_istprint((BCG_TCHAR) nChar) && !(::GetKeyState(VK_CONTROL)&0x80)) { OnCharPrintchar(nChar, nRepCnt, nFlags); return; } else if ((nChar == VK_DELETE || nChar == VK_BACK) && (!m_strMask.IsEmpty())) { return; } CEdit::OnChar(nChar, nRepCnt, nFlags); }