马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 无符号整形 于 2016-12-13 19:58 编辑
你有没有觉得CEdit很鸡肋?不能控制格式……,不然就可以用它来做注册码输入框了
不过,现在,MS给MFC添加了一种定格式输入控件,可以控制用户输入的格式,一般用来做注册码输入框。
它,可以控制输入的
掩码,输入格式,无效字符!
下面,让我们立即进入正题~
基础知识(非常重要,要使用这个控件,就必须会他的掩码语法,输入目标语法(容易一些的)!)
1.Mask(掩码)语法
很难找到资料,真的。
语法可以参照以下代码(MSDN上的,MASK语法没找到具体的资料 )
设置掩码的代码在EnableMask函数里面。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
2.输入模板
这个很简单
符号 | 意义 | _ | 此位置的字符可以是任意字符 | 其他字符 | 此位置的字符只能是此字符 |
3.无效字符
这个就更简单了,直接把不能输入的字符堆在一起即可。
比如无效字符 = "a123",那么就不能输入a,1,2,3。
那么,怎么控制定格式输入控件的掩码,输入格式,无效字符呢?
有两种办法。
1.在对话框编辑器中设置
设置以下属性即可。
属性名 | 作用 | Input Template | 输入模板 | Mask | 输入掩码 | Valid Chars | 无效字符 |
2.在代码里面动态设置。
很简单,调用以下成员函数即可。
函数名 | 作用 | EnableMask | 设置掩码 | SetValidChars | 设置无效字符 |
实践时间!
这个东西仅允许输入十六进制格式的字符。
MFCApplication54.rar
(1.6 MB, 下载次数: 14)
|