在我的对话框中,有一个 CEdit 框,用于设置最大字符数。下面在 DoDataExchange 函数中:
void CDlgSurvey::DoDataExchange(CDataExchange* pDX)
{
DDX_Control(pDX, IDC_EDIT_SURVEY_ID, m_SurveyIDEdit);//ACUTALLY THE ISSUE IS HERE,SO LATER WE MODIFIED THE CLASS FUNCTION Onchar in m_SurveyIDEdit RELATED
DDX_Text(pDX, IDC_EDIT_SURVEY_ID, m_SurveyID);
DDV_MaxChars(pDX, m_SurveyID, SURVEY_ID_FIELD_LENGTH);
}
我发现它有效。这意味着我不能键入超过 SURVEY_ID_FIELD_LENGTH 的字符。但问题是当我已经输入了 SURVEY_ID_FIELD_LENGTH 长度的字符时,我试图通过在文本末尾使用退格键来删除一些字符。它不起作用。有人遇到过这样的问题吗?我还尝试使用另一种方式在 OnInitDialog 中设置最大文本,
BOOL CDlgSurvey::OnInitDialog()
{
//set Max Text in Edit Box
CEdit* pEditControl = (CEdit*)GetDlgItem(IDC_EDIT_SURVEY_ID);
if (pEditControl)
{
pEditControl->SetLimitText(SURVEY_ID_FIELD_LENGTH);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
问题是一样的,再次,达到最大字符后我不能使用退格键。有人对如何解决它有任何想法吗?谢谢,