MFC 输入表单不接受少于 5 个符号
MFC input form not accept less than 5 symbols
我有带有文本编辑控件的MFC对话框表单,允许输入不超过5个符号。但是如何使系统不接受少于5个符号的字符串?
对话框形式:
IMPLEMENT_DYNAMIC(InputDialog, CDialogEx)
InputDialog::InputDialog(CWnd* pParent /*=NULL*/)
: CDialogEx(InputDialog::IDD, pParent)
, m_edit(_T(""))
{
}
InputDialog::~InputDialog()
{
}
void InputDialog::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_INPUT, m_edit);
DDV_MaxChars(pDX, m_edit, 5);
}
BEGIN_MESSAGE_MAP(InputDialog, CDialogEx)
ON_BN_CLICKED(IDOK, &InputDialog::OnBnClickedOk)
END_MESSAGE_MAP()
Microsoft为 MFC 提供源代码,以便您可以看到他们如何实现DDV_MaxChars
。只需复制它并更改条件即可。
void AFXAPI DDV_MinChars(CDataExchange* pDX, CString const& value, int nChars)
{
// ...
if (pDX->m_bSaveAndValidate && value.GetLength() < nChars)
{
// ...
处理文本字段的 Kill Focus 事件。 在事件的处理程序中获取输入的字符串的长度。 如果小于 5,可以选择弹出一条消息,并将焦点设置回字段。
相关文章:
- 检查TCHAR数组输入是否为带符号整数C++
- 如何通过输入十进制数打印UTF-8符号?
- 编写一个程序,输入整数 n 并打印该数字的字符数(符号除外)
- 允许用户输入带或不带美元符号的金额
- 输入迭代器是否可以仅在赋值的右侧符号上取消引用?
- 使用无符号字符数组输入十六进制数
- C ++读取用户输入的字符一个一个符号
- 理解符号表的输入(当不存在标头功能时)
- 用户输入逻辑运算符符号或数字,如果输入字符或字符串则无效
- 试图让while循环工作,当输入符号而不是字符时会中断
- 如何使用符号分隔字符串而不是空格的输入字符串流
- 如何在 c++ 中输入 128 位无符号整数
- 从文件输入中获取奇怪的符号
- 在 C++ 的无符号短数组中输入字符串
- 具有输入无符号字符缓冲区C++的设备 IoControl
- 使用带符号字符输入的isalnum-Visual C++
- g++和clang++具有流输入和无符号整数的不同行为
- 使用指针将输入中的空格替换为破折号符号
- 无符号字符不输入所有 3 位数字
- 字符串流无符号输入验证