다음을 통해 공유


CMFCMaskedEdit 클래스

클래스는 CMFCMaskedEdit 마스크에 대한 사용자 입력의 유효성을 검사하고 템플릿에 따라 유효성이 검사된 결과를 표시하는 마스킹된 편집 컨트롤을 지원합니다.

구문

class CMFCMaskedEdit : public CEdit

멤버

공용 생성자

속성 설명
CMFCMaskedEdit::CMFCMaskedEdit 기본 생성자입니다.
CMFCMaskedEdit::~CMFCMaskedEdit 소멸자

공용 메서드

이름 설명
CMFCMaskedEdit::D isableMask 사용자 입력의 유효성 검사를 사용하지 않도록 설정합니다.
CMFCMaskedEdit::EnableGetMaskedCharsOnly 메서드가 GetWindowText 마스킹된 문자만 검색할지 여부를 지정합니다.
CMFCMaskedEdit::EnableMask 마스킹된 편집 컨트롤을 초기화합니다.
CMFCMaskedEdit::EnableSelectByGroup 마스킹된 편집 컨트롤이 특정 사용자 입력 그룹 또는 모든 사용자 입력 그룹을 선택할지 여부를 지정합니다.
CMFCMaskedEdit::EnableSetMaskedCharsOnly 마스킹된 문자에 대해서만 또는 전체 마스크에 대해 텍스트의 유효성을 검사할지 여부를 지정합니다.
CMFCMaskedEdit::GetThisClass 프레임워크에서 이 클래스 형식과 연결된 CRuntimeClass 개체에 대한 포인터를 가져오는 데 사용됩니다.
CMFCMaskedEdit::GetWindowText 마스킹된 편집 컨트롤에서 유효성이 검사된 텍스트를 검색합니다.
CMFCMaskedEdit::SetValidChars 사용자가 입력할 수 있는 유효한 문자의 문자열을 지정합니다.
CMFCMaskedEdit::SetWindowText 마스킹된 편집 컨트롤에 프롬프트를 표시합니다.

보호된 메서드

속성 설명
CMFCMaskedEdit::IsMaskedChar 해당 마스크 문자에 대해 지정된 문자의 유효성을 검사하기 위해 프레임워크에서 호출됩니다.

설명

애플리케이션에서 컨트롤을 CMFCMaskedEdit 사용하려면 다음 단계를 수행합니다.

  1. 창 클래스에 CMFCMaskedEdit 개체를 포함합니다.

  2. CMFCMaskedEdit::EnableMask 메서드를 호출하여 마스크를 지정합니다.

  3. CMFCMaskedEdit::SetValidChars 메서드를 호출하여 유효한 문자 목록을 지정합니다.

  4. CMFCMaskedEdit::SetWindowText 메서드를 호출하여 마스킹된 편집 컨트롤의 기본 텍스트를 지정합니다.

  5. CMFCMaskedEdit::GetWindowText 메서드를 호출하여 유효성이 검사된 텍스트를 검색합니다.

하나 이상의 메서드를 호출하여 마스크, 유효한 문자 및 기본 텍스트를 초기화하지 않으면 마스킹된 편집 컨트롤은 표준 편집 컨트롤이 동작하는 것처럼 동작합니다.

예시

다음 예제에서는 메서드를 사용하여 마스크 편집 컨트롤에 대한 마스크를 만들고, 사용자가 입력할 수 있는 유효한 문자 문자열을 지정하는 메서드, SetValidChars SetWindowText 마스킹된 편집 컨트롤에 프롬프트를 표시하는 메서드를 사용하여 EnableMask 마스크(예: 전화 번호)를 설정하는 방법을 보여 줍니다. 이 예제는 새 컨트롤 샘플일부입니다.

CMFCMaskedEdit m_wndMaskEdit1;
CMFCMaskedEdit m_wndMaskEdit2;
CMFCMaskedEdit m_wndMaskEdit3;
CMFCMaskedEdit m_wndMaskEdit4;
CMFCMaskedEdit m_wndMaskEdit5;

CString m_strValue1;
CString m_strValue2;
CString m_strValue3;
CString m_strValue4;
CString m_strValue5;
BOOL CPage4::OnInitDialog()
{
   CMFCPropertyPage::OnInitDialog();

   // Mask 1: phone number
   m_wndMaskEdit1.EnableMask(_T(" ddd  ddd dddd"), // The mask string
                             _T("(___) ___-____"), // Literal, "_" char = character entry
                             _T(' '));             // Default char
   m_wndMaskEdit1.SetValidChars(NULL);             // Valid string characters
   m_wndMaskEdit1.SetWindowText(_T("(123) 123-1212"));

   // Mask 2: State, Zip Code
   m_wndMaskEdit2.EnableMask(_T("       cc       ddddd-dddd"), // The mask string
                             _T("State: __, Zip: _____-____"), // Literal, "_" char = character entry
                             _T(' '));                         // Backspace replace char
   m_wndMaskEdit2.SetValidChars(NULL);                         // Valid string characters
   m_wndMaskEdit2.SetWindowText(_T("State: NY, Zip: 12345-6789"));
   // Mask 3: serial code
   m_wndMaskEdit3.EnableMask(_T("     AAAA AAAA AAAA AAAA"), // The mask string
                             _T("S/N: ____-____-____-____"), // Literal, "_" char = character entry
                             _T('_'));                       // Backspace replace char
   m_wndMaskEdit3.SetValidChars(NULL);                       // Valid string characters
   m_wndMaskEdit3.SetWindowText(_T("S/N: FPR5-5678-1234-8765"));

   // Mask 4: 0xFFFF
   m_wndMaskEdit4.EnableMask(_T("  AAAA"),                     // The mask string
                             _T("0x____"),                     // Literal, "_" char = character entry
                             _T('_'));                         // Backspace replace char
   m_wndMaskEdit4.SetValidChars(_T("1234567890ABCDEFabcdef")); // Valid string characters
   m_wndMaskEdit4.SetWindowText(_T("0x01AF"));

   // Mask 5: digits only
   m_wndMaskEdit5.DisableMask();                   // Don't use the mask
   m_wndMaskEdit5.SetValidChars(_T("1234567890")); // Valid string characters
   m_wndMaskEdit5.SetWindowText(_T("1234567890"));

   return TRUE; // return TRUE unless you set the focus to a control
}

void CPage4::OnButtonGet()
{
   m_wndMaskEdit1.GetWindowText(m_strValue1);
   m_wndMaskEdit2.GetWindowText(m_strValue2);
   m_wndMaskEdit3.GetWindowText(m_strValue3);
   m_wndMaskEdit4.GetWindowText(m_strValue4);
   m_wndMaskEdit5.GetWindowText(m_strValue5);
   UpdateData(FALSE);
}

상속 계층 구조

CObject

CCmdTarget

CWnd

CEdit

CMFCMaskedEdit

요구 사항

헤더: afxmaskededit.h

CMFCMaskedEdit::D isableMask

사용자 입력의 유효성 검사를 사용하지 않도록 설정합니다.

void DisableMask();

설명

사용자 입력 유효성 검사를 사용하지 않도록 설정하면 마스킹된 편집 컨트롤이 표준 편집 컨트롤처럼 동작합니다.

CMFCMaskedEdit::EnableGetMaskedCharsOnly

메서드가 GetWindowText 마스킹된 문자만 검색할지 여부를 지정합니다.

void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);

매개 변수

bEnable
[in] CMFCMaskedEdit::GetWindowText 메서드가 마스킹된 문자만 검색하도록 지정하려면 TRUE입니다. FALSE를 사용하여 메서드가 전체 텍스트를 검색하도록 지정합니다. 기본값은 TRUE입니다.

설명

이 메서드를 사용하여 마스킹된 문자를 검색할 수 있습니다. 그런 다음(425) 555-0187과 같은 전화 번호에 해당하는 마스킹된 편집 컨트롤을 만듭니다. 메서드를 GetWindowText 호출하면 "4255550187"가 반환됩니다. 마스킹된 문자 GetWindowText 검색을 사용하지 않도록 설정하면 메서드는 편집 컨트롤에 표시되는 텍스트(예: "(425) 555-0187")를 반환합니다.

CMFCMaskedEdit::EnableMask

마스킹된 편집 컨트롤을 초기화합니다.

void EnableMask(
    LPCTSTR lpszMask,
    LPCTSTR lpszInputTemplate,
    TCHAR chMaskInputTemplate=_T('_'),
    LPCTSTR lpszValid=NULL);

매개 변수

lpszMask
[in] 사용자 입력의 각 위치에 표시할 수 있는 문자의 형식을 지정하는 마스크 문자열입니다. lpszInputTemplatelpszMask 매개 변수 문자열의 길이는 동일해야 합니다. 마스크 문자에 대한 자세한 내용은 설명 섹션을 참조하세요.

lpszInputTemplate
[in] 사용자 입력의 각 위치에 나타날 수 있는 리터럴 문자를 지정하는 마스크 템플릿 문자열입니다. 밑줄 문자를 문자 ('_') 자리 표시자로 사용합니다. lpszInputTemplatelpszMask 매개 변수 문자열의 길이는 동일해야 합니다.

chMaskInputTemplate
[in] 프레임워크가 사용자 입력의 잘못된 각 문자를 대체하는 기본 문자입니다. 이 매개 변수의 기본값은 밑줄('_')입니다.

lpszValid
[in] 유효한 문자 집합을 포함하는 문자열입니다. NULL은 모든 문자가 유효하다는 것을 나타냅니다. 이 매개 변수의 기본값은 NULL입니다.

설명

이 메서드를 사용하여 마스킹된 편집 컨트롤에 대한 마스크를 만듭니다. 클래스에서 클래스를 CMFCMaskedEdit 파생시키고 사용자 지정 마스크 처리에 고유한 코드를 사용하도록 CMFCMaskedEdit::IsMaskedChar 메서드를 재정의합니다.

다음 표에는 기본 마스크 문자가 나와 있습니다.

마스크 문자 정의
D 손가락.
d 숫자 또는 공백입니다.
+ 더하기('+'), 빼기('-') 또는 공백.
C 알파벳 문자입니다.
c 알파벳 문자 또는 공백입니다.
A 영숫자.
a 영숫자 문자 또는 공백입니다.
* 인쇄 가능한 문자입니다.

CMFCMaskedEdit::EnableSelectByGroup

마스킹된 편집 컨트롤을 통해 사용자가 특정 그룹 입력 또는 모든 입력을 선택할 수 있는지 여부를 지정합니다.

void EnableSelectByGroup(BOOL bEnable=TRUE);

매개 변수

bEnable
[in] TRUE이면 그룹만 선택할 수 있습니다. 전체 텍스트를 선택하려면 FALSE입니다. 기본값은 TRUE입니다.

설명

이 함수를 사용하여 마스킹된 편집 컨트롤에서 사용자가 그룹별로 선택할 수 있는지 또는 전체 텍스트를 선택할 수 있는지 여부를 지정합니다.

기본적으로 그룹별 선택은 사용하도록 설정됩니다. 이 경우 사용자는 유효한 문자의 연속 그룹만 선택할 수 있습니다.

예를 들어 다음 마스킹된 편집 컨트롤을 사용하여 전화 번호의 유효성을 검사할 수 있습니다.

m_wndMaskEdit.EnableMask(
    _T(" ddd  ddd dddd"),  // Mask string
    _T("(___) ___-____"),  // Template string
    _T(' '));              // Default char

m_wndMaskEdit.SetValidChars(NULL); // All characters are valid.

m_wndMaskEdit.SetWindowText(_T("(425) 555-0187")); // Prompt

그룹별 선택을 사용하는 경우 사용자는 "425", "555" 또는 "0187" 문자열 그룹만 검색할 수 있습니다. 그룹 선택을 사용하지 않도록 설정하면 사용자는 전화 번호의 전체 텍스트인 "(425) 555-0187"을 검색할 수 있습니다.

CMFCMaskedEdit::EnableSetMaskedCharsOnly

마스킹된 문자에 대해서만 또는 전체 마스크에 대해 텍스트의 유효성을 검사할지 여부를 지정합니다.

void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);

매개 변수

bEnable
[in] 마스킹된 문자에 대해서만 사용자 입력의 유효성을 검사하려면 TRUE입니다. 전체 마스크에 대해 유효성을 검사하려면 FALSE입니다. 기본값은 TRUE입니다.

CMFCMaskedEdit::GetWindowText

마스킹된 편집 컨트롤에서 유효성이 검사된 텍스트를 검색합니다.

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(CString& rstrString) const;

매개 변수

lpszStringBuf
[out] 편집 컨트롤에서 텍스트를 받는 버퍼에 대한 포인터입니다.

nMaxCount
[in] 받을 최대 문자 수입니다.

rstrString
[out] 편집 컨트롤에서 텍스트를 받는 문자열 개체에 대한 참조입니다.

Return Value

첫 번째 메서드 오버로드는 lpszStringBuf 매개 변수 버퍼에 복사되는 문자열의 바이트 수를 반환합니다. 마스킹된 편집 컨트롤에 텍스트가 없으면 0입니다.

설명

이 메서드는 마스킹된 편집 컨트롤 의 텍스트를 lpszStringBuf 버퍼 또는 rstrString 문자열로 복사합니다.

이 메서드는 CWnd::GetWindowText를 다시 정의합니다.

CMFCMaskedEdit::IsMaskedChar

해당 마스크 문자에 대해 지정된 문자의 유효성을 검사하기 위해 프레임워크에서 호출됩니다.

virtual BOOL IsMaskedChar(
    TCHAR chChar,
    TCHAR chMaskChar) const;

매개 변수

chChar
[in] 유효성을 검사할 문자입니다.

chMaskChar
[in] 마스크 문자열의 해당 문자입니다.

Return Value

chChar 매개 변수가 chMaskChar 매개 변수에서 허용하는 문자 형식이면 TRUE이고, 그렇지 않으면 FALSE입니다.

설명

입력 문자의 유효성을 직접 검사하려면 이 메서드를 재정의합니다. 마스크 문자 에 대한 자세한 내용은 CMFCMaskedEdit::EnableMask 메서드를 참조하세요.

CMFCMaskedEdit::SetValidChars

사용자가 입력할 수 있는 유효한 문자의 문자열을 지정합니다.

void SetValidChars(LPCTSTR lpszValid=NULL);

매개 변수

lpszValid
[in] 유효한 입력 문자 집합을 포함하는 문자열입니다. NULL은 모든 문자가 유효하다는 것을 의미합니다. 이 매개 변수의 기본값은 NULL입니다.

설명

이 메서드를 사용하여 유효한 문자 목록을 정의합니다. 입력 문자가 이 목록에 없으면 마스킹된 편집 컨트롤은 이를 허용하지 않습니다.

다음 코드 예제에서는 16진수만 허용합니다.

//Mask: 0xFFFF
m_wndMaskEdit.EnableMask(
    _T(" AAAA"),                // The mask string.
    _T("0x____"),               // The literal template string.
    _T('_'));                   // The default character that
                                // replaces the backspace character.
// Valid string characters
m_wndMaskEdit.SetValidChars(_T("1234567890ABCDEFabcdef"));m_wndMaskEdit.SetWindowText(_T("0x01AF"));

CMFCMaskedEdit::SetWindowText

마스킹된 편집 컨트롤에 프롬프트를 표시합니다.

void SetWindowText(LPCTSTR lpszString);

매개 변수

lpszString
[in] 프롬프트로 사용할 null로 끝나는 문자열을 가리킵니다.

설명

이 메서드는 컨트롤 텍스트를 설정합니다.

이 메서드는 CWnd::SetWindowText를 다시 정의합니다.

참고 항목

계층 구조 차트
클래스
CEdit 클래스