【MFC入门文字教程】35-定格式输入控件(CMFCMaskedEdit)
本帖最后由 无符号整形 于 2016-12-13 19:58 编辑你有没有觉得CEdit很鸡肋?不能控制格式……,不然就可以用它来做注册码输入框了
不过,现在,MS给MFC添加了一种定格式输入控件,可以控制用户输入的格式,一般用来做注册码输入框。
它,可以控制输入的
掩码,输入格式,无效字符!
下面,让我们立即进入正题~{:10_279:}
基础知识(非常重要,要使用这个控件,就必须会他的掩码语法,输入目标语法(容易一些的)!)
1.Mask(掩码)语法
很难找到资料,真的。
语法可以参照以下代码(MSDN上的,MASK语法没找到具体的资料{:10_266:} )
设置掩码的代码在EnableMask函数里面。
CMFCPropertyPage::OnInitDialog();
// Mask 1: phone number
m_wndMaskEdit1.EnableMask(_T(" dddddd 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
2.输入模板
这个很简单
符号 意义
_ 此位置的字符可以是任意字符
其他字符 此位置的字符只能是此字符
3.无效字符
这个就更简单了,直接把不能输入的字符堆在一起即可。
比如无效字符 = "a123",那么就不能输入a,1,2,3。
那么,怎么控制定格式输入控件的掩码,输入格式,无效字符呢?
有两种办法。
1.在对话框编辑器中设置
设置以下属性即可。
属性名 作用
Input Template 输入模板
Mask 输入掩码
Valid Chars 无效字符
2.在代码里面动态设置。
很简单,调用以下成员函数即可。
函数名 作用
EnableMask 设置掩码
SetValidChars 设置无效字符
实践时间!
这个东西仅允许输入十六进制格式的字符。
LZSB
页:
[1]