void SMaskEdit::SetMaskedText(LPCTSTR lpszMaskedText, int nPos, BOOL bUpdateWindow) { int nMaskedTextLength = (int)_tcslen(lpszMaskedText); m_strWindowText = m_strWindowText.Left(nPos); int nIndex = 0; for (; (nPos < m_strLiteral.GetLength()) && (nIndex < nMaskedTextLength) ; nPos++) { TCHAR uChar = lpszMaskedText[nIndex]; if (IsPromptPos(nPos) && ((uChar == m_chPrompt) || ProcessMask(uChar, nPos))) { m_strWindowText += (TCHAR)uChar; nIndex ++; } else { m_strWindowText += m_strLiteral[nPos]; } } if (bUpdateWindow) { SetMaskState(); } else { CorrectWindowText(); } }
void SMaskEdit::SetMaskState() { ASSERT(m_bUseMask); SStringT strWindowText = GetWindowText(); CorrectWindowText(); GetContainer()->SwndShowCaret(FALSE); if (strWindowText != m_strWindowText) { SetWindowText(S_CT2W(m_strWindowText)); m_bModified = TRUE; } SetSel(MAKELONG(m_nStartChar, m_nEndChar), FALSE); GetContainer()->SwndShowCaret(TRUE); }
void SMaskEdit::GetMaskState(BOOL bCorrectSelection) { ASSERT(m_bUseMask); MaskGetSel(); m_strWindowText = GetWindowText(); ASSERT(m_strDefault.GetLength() == m_strLiteral.GetLength()); ASSERT(m_strMask.GetLength() == m_strLiteral.GetLength()); CorrectWindowText(); if (bCorrectSelection) { CorrectPosition(m_nStartChar); CorrectPosition(m_nEndChar); if (m_nEndChar < m_nStartChar) m_nEndChar = m_nStartChar; } }
void CDxMaskEdit::SetMaskState() { //if (!m_hWnd) // return; ATLASSERT(m_bUseMask); CString strWindowText = GetWindowText(); CorrectWindowText(); GetContainer()->DxShowCaret(FALSE); if (strWindowText != m_strWindowText) { SetWindowText(m_strWindowText); m_bModified = TRUE; } SetSel(MAKELONG(m_nStartChar, m_nEndChar), FALSE); GetContainer()->DxShowCaret(TRUE); }