我有带有文本编辑控件的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/

10-10 20:56