Esempio n. 1
0
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();
    }
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
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;
    }
}
Esempio n. 4
0
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);
}