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
Veri Akışı Adı | Açıklama |
---|---|
CMFCMaskedEdit::CMFCMaskedEdit |
Varsayılan oluşturucu. |
CMFCMaskedEdit::~CMFCMaskedEdit |
Yıkıcı. |
Genel Yöntemler
Veri Akışı Adı | Açıklama |
---|---|
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
Veri Akışı Adı | Açıklama |
---|---|
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:
Pencere sınıfınıza bir
CMFCMaskedEdit
nesne ekleyin.Maskeyi belirtmek için CMFCMaskedEdit::EnableMask yöntemini çağırın.
Geçerli karakterlerin listesini belirtmek için CMFCMaskedEdit::SetValidChars yöntemini çağırın.
Maskelenmiş düzenleme denetimi için varsayılan metni belirtmek için CMFCMaskedEdit::SetWindowText yöntemini çağırın.
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
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 | Tanım |
---|---|
D | Parmak. |
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.
Dönüş 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.
Dönüş 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.