Aracılığıyla paylaş


CMFCMaskedEdit Sınıfı

sınıfı CMFCMaskedEdit maskelenmiş düzenleme denetimini destekler. Bu denetim, maskeye karşı kullanıcı girişini doğrular ve doğrulanmış sonuçları bir şablona göre görüntüler.

Sözdizimi

class CMFCMaskedEdit : public CEdit

Üyeler

Ortak Oluşturucular

Ad Tanım
CMFCMaskedEdit::CMFCMaskedEdit Varsayılan oluşturucu.
CMFCMaskedEdit::~CMFCMaskedEdit Yıkıcı.

Genel Yöntemler

Ad Tanım
CMFCMaskedEdit::D isableMask Kullanıcı girişini doğrulamayı devre dışı bırakır.
CMFCMaskedEdit::EnableGetMaskedCharsOnly Yöntemin GetWindowText yalnızca maskelenmiş karakterleri alıp almadığını belirtir.
CMFCMaskedEdit::EnableMask Maskelenmiş düzenleme denetimini başlatır.
CMFCMaskedEdit::EnableSelectByGroup Maskelenmiş düzenleme denetiminin belirli kullanıcı girişi gruplarını mı yoksa tüm kullanıcı girişlerini mi seçdiğini belirtir.
CMFCMaskedEdit::EnableSetMaskedCharsOnly Metnin yalnızca maskelenmiş karakterlerle mi yoksa maskenin tamamıyla mı doğrulanıp doğrulanmayacağını belirtir.
CMFCMaskedEdit::GetThisClass Çerçeve tarafından, bu sınıf türüyle ilişkili CRuntimeClass nesnesine bir işaretçi almak için kullanılır.
CMFCMaskedEdit::GetWindowText Maskelenmiş düzenleme denetiminden doğrulanmış metni alır.
CMFCMaskedEdit::SetValidChars Kullanıcının girebileceği geçerli karakterlerden oluşan bir dize belirtir.
CMFCMaskedEdit::SetWindowText Maskelenmiş düzenleme denetiminde bir istem görüntüler.

Korumalı Yöntemler

Ad Tanım
CMFCMaskedEdit::IsMaskedChar Belirtilen karakteri ilgili maske karakterine göre doğrulamak için çerçeve tarafından çağrılır.

Açıklamalar

Uygulamanızda denetimi kullanmak CMFCMaskedEdit için aşağıdaki adımları gerçekleştirin:

  1. Pencere sınıfınıza bir CMFCMaskedEdit nesne ekleyin.

  2. Maskeyi belirtmek için CMFCMaskedEdit::EnableMask yöntemini çağırın.

  3. Geçerli karakterlerin listesini belirtmek için CMFCMaskedEdit::SetValidChars yöntemini çağırın.

  4. Maskelenmiş düzenleme denetimi için varsayılan metni belirtmek için CMFCMaskedEdit::SetWindowText yöntemini çağırın.

  5. Doğrulanmış metni almak için CMFCMaskedEdit::GetWindowText yöntemini çağırın.

Maskeyi, geçerli karakterleri ve varsayılan metni başlatmak için bir veya daha fazla yöntem çağırmazsanız, maskelenmiş düzenleme denetimi standart düzenleme denetiminin davrandığı gibi davranır.

Örnek

Aşağıdaki örnekte, maskelenmiş düzenleme denetimi için maske oluşturma yöntemini kullanarak EnableMask bir maskenin (örneğin telefon numarası) nasıl ayarlanacağı, SetValidChars kullanıcının girebileceği geçerli karakter dizesini belirtme yöntemi ve SetWindowText maskelenmiş düzenleme denetiminde istem görüntüleme yöntemi gösterilmektedir. Bu örnek, Yeni Denetimler örneğinin bir parçasıdır.

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);
}

Devralma Hiyerarşisi

Cobject

Ccmdtarget

Cwnd

Cedit

CMFCMaskedEdit

Gereksinimler

Üst bilgi: afxmaskededit.h

CMFCMaskedEdit::D isableMask

Kullanıcı girişini doğrulamayı devre dışı bırakır.

void DisableMask();

Açıklamalar

Kullanıcı girişi doğrulaması devre dışı bırakılırsa, maskelenmiş düzenleme denetimi standart düzenleme denetimi gibi davranır.

CMFCMaskedEdit::EnableGetMaskedCharsOnly

Yöntemin GetWindowText yalnızca maskelenmiş karakterleri alıp almadığını belirtir.

void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);

Parametreler

bEnable
[in] CMFCMaskedEdit::GetWindowText yönteminin yalnızca maskelenmiş karakterleri almasını belirtmek için TRUE; YÖNTEMIn metnin tamamını almasını belirtmek için YANLIŞ. Varsayılan değer DOĞRU'dur.

Açıklamalar

Maskelenmiş karakterlerin alınmasını etkinleştirmek için bu yöntemi kullanın. Ardından telefon numarasına karşılık gelen (425) 555-0187 gibi bir maskelenmiş düzenleme denetimi oluşturun. yöntemini çağırırsanız GetWindowText , "4255550187" döndürür. Maskelenmiş karakterleri almayı devre dışı bırakırsanız, GetWindowText yöntem düzenleme denetiminde görüntülenen metni döndürür, örneğin"(425) 555-0187".

CMFCMaskedEdit::EnableMask

Maskelenmiş düzenleme denetimini başlatır.

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

Parametreler

lpszMask
[in] Kullanıcı girişindeki her konumda görünebilecek karakter türünü belirten bir maske dizesi. lpszInputTemplate ve lpszMask parametre dizelerinin uzunluğu aynı olmalıdır. Maske karakterleri hakkında daha fazla ayrıntı için Açıklamalar bölümüne bakın.

lpszInputTemplate
[in] Kullanıcı girişindeki her konumda görünebilecek değişmez karakterleri belirten bir maske şablonu dizesi. Alt çizgi karakterini karakter ('_') yer tutucusu olarak kullanın. lpszInputTemplate ve lpszMask parametre dizelerinin uzunluğu aynı olmalıdır.

chMaskInputTemplate
[in] Çerçevenin kullanıcı girişindeki her geçersiz karakterin yerini alan varsayılan karakter. Bu parametrenin varsayılan değeri alt çizgidir ('_').

lpszValid
[in] Geçerli karakter kümesi içeren bir dize. NULL, tüm karakterlerin geçerli olduğunu gösterir. Bu parametrenin varsayılan değeri NULL'dir.

Açıklamalar

Maskelenmiş düzenleme denetimi için maske oluşturmak için bu yöntemi kullanın. sınıfından CMFCMaskedEdit bir sınıf türetin ve özel maske işleme için kendi kodunuzu kullanmak üzere CMFCMaskedEdit::IsMaskedChar yöntemini geçersiz kılın.

Aşağıdaki tablo varsayılan maske karakterlerini listeler:

Maske Karakteri Açıklama
D Basamak.
d Basamak veya boşluk.
+ Artı ('+'), eksi ('-') veya boşluk.
C Alfabetik karakter.
c Alfabetik karakter veya boşluk.
A Alfasayısal karakter.
a Alfasayısal karakter veya boşluk.
* Yazdırılabilir bir karakter.

CMFCMaskedEdit::EnableSelectByGroup

Maskelenmiş düzenleme denetiminin kullanıcının belirli grup girişlerini mi yoksa tüm girişleri mi seçmesine izin vermeyeceğini belirtir.

void EnableSelectByGroup(BOOL bEnable=TRUE);

Parametreler

bEnable
[in] Yalnızca grupları seçmek için TRUE; Metnin tamamını seçmek için YANLIŞ. Varsayılan değer DOĞRU'dur.

Açıklamalar

Maskelenmiş düzenleme denetiminin kullanıcının gruba göre mi yoksa metnin tamamını mı seçmesine izin verip vermeyeceğini belirtmek için bu işlevi kullanın.

Varsayılan olarak, gruba göre seçim etkinleştirilir. Bu durumda kullanıcı yalnızca geçerli karakterlerden oluşan sürekli grupları seçebilir.

Örneğin, bir telefon numarasını doğrulamak için aşağıdaki maskelenmiş düzenleme denetimini kullanabilirsiniz:

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

Gruba göre seçim etkinleştirilirse, kullanıcı yalnızca "425", "555" veya "0187" dize gruplarını alabilir. Grup seçimi devre dışı bırakılırsa, kullanıcı telefon numarasının tam metnini alabilir: "(425) 555-0187".

CMFCMaskedEdit::EnableSetMaskedCharsOnly

Metnin yalnızca maskelenmiş karakterlerle mi yoksa maskenin tamamıyla mı doğrulanıp doğrulanmayacağını belirtir.

void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);

Parametreler

bEnable
[in] Kullanıcı girişini yalnızca maskelenmiş karakterlerle doğrulamak için TRUE; Tüm maskeye karşı doğrulamak için FALSE. Varsayılan değer DOĞRU'dur.

CMFCMaskedEdit::GetWindowText

Maskelenmiş düzenleme denetiminden doğrulanmış metni alır.

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(CString& rstrString) const;

Parametreler

lpszStringBuf
[out] Düzenleme denetiminden metin alan bir arabelleğe yönelik işaretçi.

nMaxCount
[in] Alınacak en fazla karakter sayısı.

rstrString
[out] Düzenleme denetiminden metin alan dize nesnesine başvuru.

İade Değeri

İlk yöntem aşırı yüklemesi, lpszStringBuf parametre arabelleğine kopyalanan dizenin bayt sayısını, maskelenmiş düzenleme denetiminde metin yoksa 0 değerini döndürür.

Açıklamalar

Bu yöntem, maskelenmiş düzenleme denetimindeki metni lpszStringBuf arabelleğine veya rstrString dizesine kopyalar.

Bu yöntem CWnd::GetWindowText öğesini yeniden tanımlar.

CMFCMaskedEdit::IsMaskedChar

Belirtilen karakteri ilgili maske karakterine göre doğrulamak için çerçeve tarafından çağrılır.

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

Parametreler

chChar
[in] Doğrulanacak karakter.

chMaskChar
[in] Maske dizesinden karşılık gelen karakter.

İade Değeri

chChar parametresi chMaskChar parametresi tarafından izin verilen karakter türüyse TRUE; aksi takdirde YANLIŞ.

Açıklamalar

Giriş karakterlerini kendiniz doğrulamak için bu yöntemi geçersiz kılın. Maske karakterleri hakkında daha fazla bilgi için bkz . CMFCMaskedEdit::EnableMask yöntemi.

CMFCMaskedEdit::SetValidChars

Kullanıcının girebileceği geçerli karakterlerden oluşan bir dize belirtir.

void SetValidChars(LPCTSTR lpszValid=NULL);

Parametreler

lpszValid
[in] Geçerli giriş karakterleri kümesini içeren bir dize. NULL, tüm karakterlerin geçerli olduğu anlamına gelir. Bu parametrenin varsayılan değeri NULL'dir.

Açıklamalar

Geçerli karakterlerin listesini tanımlamak için bu yöntemi kullanın. Giriş karakteri bu listede yoksa, maskelenmiş düzenleme denetimi bunu kabul etmeyecektir.

Aşağıdaki kod örneği yalnızca onaltılık sayıları kabul eder.

//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

Maskelenmiş düzenleme denetiminde bir istem görüntüler.

void SetWindowText(LPCTSTR lpszString);

Parametreler

lpszString
[in] İstem olarak kullanılacak null olarak sonlandırılan bir dizeye işaret eder.

Açıklamalar

Bu yöntem denetim metnini ayarlar.

Bu yöntem CWnd::SetWindowText öğesini yeniden tanımlar.

Ayrıca bkz.

Hiyerarşi Grafiği
Sınıflar
CEdit Sınıfı