Kelas CMFCMaskedEdit
Kelas ini CMFCMaskedEdit
mendukung kontrol edit bertopeng, yang memvalidasi input pengguna terhadap masker dan menampilkan hasil yang divalidasi sesuai dengan templat.
Sintaks
class CMFCMaskedEdit : public CEdit
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CMFCMaskedEdit::CMFCMaskedEdit |
Konstruktor default. |
CMFCMaskedEdit::~CMFCMaskedEdit |
Destruktor. |
Metode Publik
Nama | Deskripsi |
---|---|
CMFCMaskedEdit::D isableMask | Menonaktifkan validasi input pengguna. |
CMFCMaskedEdit::EnableGetMaskedCharsOnly | Menentukan apakah GetWindowText metode hanya mengambil karakter bertopeng. |
CMFCMaskedEdit::EnableMask | Menginisialisasi kontrol edit bertopeng. |
CMFCMaskedEdit::EnableSelectByGroup | Menentukan apakah kontrol edit bertopeng memilih grup input pengguna tertentu, atau semua input pengguna. |
CMFCMaskedEdit::EnableSetMaskedCharsOnly | Menentukan apakah teks divalidasi hanya terhadap karakter bertopeng, atau terhadap seluruh masker. |
CMFCMaskedEdit::GetThisClass |
Digunakan oleh kerangka kerja untuk mendapatkan penunjuk ke objek CRuntimeClass yang terkait dengan jenis kelas ini. |
CMFCMaskedEdit::GetWindowText | Mengambil teks yang divalidasi dari kontrol edit bertopeng. |
CMFCMaskedEdit::SetValidChars | Menentukan string karakter valid yang dapat dimasukkan pengguna. |
CMFCMaskedEdit::SetWindowText | Menampilkan perintah dalam kontrol edit bertopeng. |
Metode yang Dilindungi
Nama | Deskripsi |
---|---|
CMFCMaskedEdit::IsMaskedChar | Dipanggil oleh kerangka kerja untuk memvalidasi karakter yang ditentukan terhadap karakter masker yang sesuai. |
Keterangan
Lakukan langkah-langkah berikut untuk menggunakan CMFCMaskedEdit
kontrol di aplikasi Anda:
Sematkan
CMFCMaskedEdit
objek ke kelas jendela Anda.Panggil metode CMFCMaskedEdit::EnableMask untuk menentukan masker.
Panggil metode CMFCMaskedEdit::SetValidChars untuk menentukan daftar karakter yang valid.
Panggil metode CMFCMaskedEdit::SetWindowText untuk menentukan teks default untuk kontrol edit bertopeng.
Panggil metode CMFCMaskedEdit::GetWindowText untuk mengambil teks yang divalidasi.
Jika Anda tidak memanggil satu atau beberapa metode untuk menginisialisasi masker, karakter yang valid, dan teks default, kontrol edit bertopeng bertingkah sama seperti perilaku kontrol edit standar.
Contoh
Contoh berikut menunjukkan cara menyiapkan masker (misalnya nomor telepon) dengan menggunakan EnableMask
metode untuk membuat masker untuk kontrol edit bertopeng, SetValidChars
metode untuk menentukan string karakter valid yang dapat dimasukkan pengguna, dan SetWindowText
metode untuk menampilkan perintah dalam kontrol edit yang diselubungi. Contoh ini adalah bagian dari sampel Kontrol Baru.
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);
}
Hierarki Warisan
Persyaratan
Header: afxmaskedit.h
CMFCMaskedEdit::D isableMask
Menonaktifkan validasi input pengguna.
void DisableMask();
Keterangan
Jika validasi input pengguna dinonaktifkan, kontrol edit bertopeng bertingkah seperti kontrol edit standar.
CMFCMaskedEdit::EnableGetMaskedCharsOnly
Menentukan apakah GetWindowText
metode hanya mengambil karakter bertopeng.
void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);
Parameter
bEnable
[di] TRUE untuk menentukan bahwa metode CMFCMaskedEdit::GetWindowText hanya mengambil karakter bertopeng; FALSE untuk menentukan bahwa metode mengambil seluruh teks. Nilai defaultnya adalah TRUE.
Keterangan
Gunakan metode ini untuk mengaktifkan pengambilan karakter bertopeng. Kemudian buat kontrol edit bertopeng yang sesuai dengan nomor telepon, seperti (425) 555-0187. Jika Anda memanggil GetWindowText
metode , metode akan mengembalikan "4255550187". Jika Anda menonaktifkan pengambilan karakter bertopeng, GetWindowText
metode mengembalikan teks yang ditampilkan dalam kontrol edit, misalnya "(425) 555-0187".
CMFCMaskedEdit::EnableMask
Menginisialisasi kontrol edit bertopeng.
void EnableMask(
LPCTSTR lpszMask,
LPCTSTR lpszInputTemplate,
TCHAR chMaskInputTemplate=_T('_'),
LPCTSTR lpszValid=NULL);
Parameter
lpszMask
[di] String mask yang menentukan jenis karakter yang dapat muncul di setiap posisi dalam input pengguna. Panjang string parameter lpszInputTemplate dan lpszMask harus sama. Lihat bagian Keterangan untuk detail selengkapnya tentang karakter masker.
lpszInputTemplate
[di] String templat mask yang menentukan karakter harfiah yang dapat muncul di setiap posisi dalam input pengguna. Gunakan karakter ('_') garis bawah sebagai tempat penampung karakter. Panjang string parameter lpszInputTemplate dan lpszMask harus sama.
chMaskInputTemplate
[di] Karakter default yang diganti kerangka kerja untuk setiap karakter yang tidak valid dalam input pengguna. Nilai default parameter ini adalah garis bawah ('_') .
lpszValid
[di] String yang berisi sekumpulan karakter yang valid. NULL menunjukkan bahwa semua karakter valid. Nilai default parameter ini adalah NULL.
Keterangan
Gunakan metode ini untuk membuat mask untuk kontrol edit bertopeng. Dapatkan kelas dari CMFCMaskedEdit
kelas dan ambil alih metode CMFCMaskedEdit::IsMaskedChar untuk menggunakan kode Anda sendiri untuk pemrosesan masker kustom.
Tabel berikut mencantumkan karakter masker default:
Karakter Mask | Definisi |
---|---|
D | Jari. |
d | Digit atau spasi. |
+ | Plus ('+'), minus ('-'), atau spasi. |
C | Karakter alfabet. |
c | Karakter atau spasi alfabet. |
A | Karakter alfanumerik. |
a | Karakter atau spasi alfanumerik. |
* | Karakter yang dapat dicetak. |
CMFCMaskedEdit::EnableSelectByGroup
Menentukan apakah kontrol edit bertopeng memungkinkan pengguna untuk memilih input grup tertentu, atau semua input.
void EnableSelectByGroup(BOOL bEnable=TRUE);
Parameter
bEnable
[di] TRUE untuk memilih hanya grup; FALSE untuk memilih seluruh teks. Nilai defaultnya adalah TRUE.
Keterangan
Gunakan fungsi ini untuk menentukan apakah kontrol edit bertopeng memungkinkan pengguna untuk memilih menurut grup atau seluruh teks.
Secara default, pilihan menurut grup diaktifkan. Dalam hal ini pengguna hanya dapat memilih grup berkelanjutan dari karakter yang valid.
Misalnya, Anda dapat menggunakan kontrol edit bertopeng berikut untuk memvalidasi nomor telepon:
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
Jika pilihan menurut grup diaktifkan, pengguna hanya dapat mengambil grup string "425", "555", atau "0187". Jika pilihan grup dinonaktifkan, pengguna dapat mengambil seluruh teks nomor telepon: "(425) 555-0187".
CMFCMaskedEdit::EnableSetMaskedCharsOnly
Menentukan apakah teks divalidasi hanya terhadap karakter bertopeng, atau terhadap seluruh masker.
void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);
Parameter
bEnable
[di] TRUE untuk memvalidasi input pengguna terhadap hanya karakter bertopeng; FALSE untuk memvalidasi terhadap seluruh masker. Nilai defaultnya adalah TRUE.
CMFCMaskedEdit::GetWindowText
Mengambil teks yang divalidasi dari kontrol edit bertopeng.
int GetWindowText(
LPTSTR lpszStringBuf,
int nMaxCount) const;
void GetWindowText(CString& rstrString) const;
Parameter
lpszStringBuf
[out] Penunjuk ke buffer yang menerima teks dari kontrol edit.
nMaxCount
[di] Jumlah maksimum karakter yang akan diterima.
rstrString
[out] Referensi ke objek string yang menerima teks dari kontrol edit.
Tampilkan Nilai
Overload metode pertama mengembalikan jumlah byte string yang disalin ke buffer parameter lpszStringBuf ; 0 jika kontrol edit bertopeng tidak memiliki teks.
Keterangan
Metode ini menyalin teks dari kontrol edit bertopeng ke buffer lpszStringBuf atau string rstrstring .
Metode ini mendefiniskan ulang CWnd::GetWindowText.
CMFCMaskedEdit::IsMaskedChar
Dipanggil oleh kerangka kerja untuk memvalidasi karakter yang ditentukan terhadap karakter masker yang sesuai.
virtual BOOL IsMaskedChar(
TCHAR chChar,
TCHAR chMaskChar) const;
Parameter
chChar
[di] Karakter yang akan divalidasi.
chMaskChar
[di] Karakter yang sesuai dari string mask.
Tampilkan Nilai
TRUE jika parameter chChar adalah jenis karakter yang diizinkan oleh parameter chMaskChar ; jika tidak, FALSE.
Keterangan
Ambil alih metode ini untuk memvalidasi karakter input sendiri. Untuk informasi selengkapnya tentang karakter masker, lihat metode CMFCMaskedEdit::EnableMask .
CMFCMaskedEdit::SetValidChars
Menentukan string karakter valid yang dapat dimasukkan pengguna.
void SetValidChars(LPCTSTR lpszValid=NULL);
Parameter
lpszValid
[di] String yang berisi sekumpulan karakter input yang valid. NULL berarti bahwa semua karakter valid. Nilai default parameter ini adalah NULL.
Keterangan
Gunakan metode ini untuk menentukan daftar karakter yang valid. Jika karakter input tidak ada dalam daftar ini, kontrol edit bertopeng tidak akan menerimanya.
Contoh kode berikut hanya menerima angka heksadesimal.
//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
Menampilkan perintah dalam kontrol edit bertopeng.
void SetWindowText(LPCTSTR lpszString);
Parameter
lpszString
[di] Menunjuk ke string null-terminated yang akan digunakan sebagai prompt.
Keterangan
Metode ini mengatur teks kontrol.
Metode ini menentukan ulang CWnd::SetWindowText.