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
사용하려면 다음 단계를 수행합니다.
창 클래스에
CMFCMaskedEdit
개체를 포함합니다.CMFCMaskedEdit::EnableMask 메서드를 호출하여 마스크를 지정합니다.
CMFCMaskedEdit::SetWindowText 메서드를 호출하여 마스킹된 편집 컨트롤의 기본 텍스트를 지정합니다.
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);
}
상속 계층 구조
요구 사항
헤더: 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] 사용자 입력의 각 위치에 표시할 수 있는 문자의 형식을 지정하는 마스크 문자열입니다. lpszInputTemplate 및 lpszMask 매개 변수 문자열의 길이는 동일해야 합니다. 마스크 문자에 대한 자세한 내용은 설명 섹션을 참조하세요.
lpszInputTemplate
[in] 사용자 입력의 각 위치에 나타날 수 있는 리터럴 문자를 지정하는 마스크 템플릿 문자열입니다. 밑줄 문자를 문자 ('_') 자리 표시자로 사용합니다. lpszInputTemplate 및 lpszMask 매개 변수 문자열의 길이는 동일해야 합니다.
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를 다시 정의합니다.