我有带有文本编辑控件的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)
{
// ...
关于c++ - MFC输入表单不能接受少于5个符号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22858899/