Bagikan melalui


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:

  1. Sematkan CMFCMaskedEdit objek ke kelas jendela Anda.

  2. Panggil metode CMFCMaskedEdit::EnableMask untuk menentukan masker.

  3. Panggil metode CMFCMaskedEdit::SetValidChars untuk menentukan daftar karakter yang valid.

  4. Panggil metode CMFCMaskedEdit::SetWindowText untuk menentukan teks default untuk kontrol edit bertopeng.

  5. 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

CObject

CCmdTarget

CWnd

CEdit

CMFCMaskedEdit

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.

Lihat juga

Bagan Hierarki
Kelas
Kelas CEdit