DDV_MaxChars使用OK,但是显示的错误信息抓取不到,也没有实现多国语言的问题
我的代码就是这样写的:
void CScanConfig::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CScanConfig)
DDX_Text(pDX, IDC_SCANCONFIGNAME, m_ScanConfigName);
DDV_MaxChars(pDX, m_ScanConfigName, 128);--》执行没问题
//}}AFX_DATA_MAP
}
/////////////////////////////////////////////////////////////////////////////--》这个是mfc里面的定义
// Max Chars Dialog Data Validation
void AFXAPI DDV_MaxChars(CDataExchange* pDX, CString const& value, int nChars)
{
ASSERT(nChars >= 1); // allow them something
if (pDX->m_bSaveAndValidate && value.GetLength() > nChars)
{
TCHAR szT[32];
wsprintf(szT, _T("%d"), nChars);
CString prompt;
AfxFormatString1(prompt, AFX_IDP_PARSE_STRING_SIZE, szT);--》这里AFX_IDP_PARSE_STRING_SIZE抓取不出来,不知道为什么呢?我不大明白MFC的这个多国语言要如何实现~~ 英文默认的也没有抓取出来,是空白。。。 请大家帮忙~~ 不懂~~-_-#,谢谢
AfxMessageBox(prompt, MB_ICONEXCLAMATION, AFX_IDP_PARSE_STRING_SIZE);
prompt.Empty(); // exception prep
pDX->Fail();
}
else if (pDX->m_hWndLastControl != NULL && pDX->m_bEditLastControl)
{
// limit the control max-chars automatically
::SendMessage(pDX->m_hWndLastControl, EM_LIMITTEXT, nChars, 0);
}
}