我的代码就是这样写的:
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 Validationvoid 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);
}
}
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 Validationvoid 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);
}
}
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENW)
#ifdef _WIN32
LANGUAGE LANG_ENGLISH, 0xC
#pragma code_page(1252)
#endif //_WIN32
#include "afxres.rc" //我就加了这句希望大家顶下,偶把分送掉希望大家不要像我,基本工不扎实,我是时候要多复习下-_-#
我做了一个库,目前可以自动替换 combox clistctrl ctab lable .... 等比较常用的控件中的文本。
DDV_MaxChars(pDX, m_ScanConfigName, 128);
这个DDV_MaxChars折腾了我半天就是闹不明白
字面意思也看不懂,可苦了我了,新手,新手