这可能是一个非常基本的问题,但我似乎无法理解。 我正在从事一个可视化C ++项目,我基本上想从GUI中获取一个字符串,然后将其用作文件名。 到目前为止,我已经写了以下内容,其中IDC_FILE_NAME是编辑控制框的 ID,但我不确定这是否是实现这一目标的方法。
m_pFileName = (CEdit*)GetDlgItem( IDC_FILE_NAME );
CString fName =_T(" ");
GetDlgItemTextA(IDC_FILE_NAME, fName);
但我不确定这是否是实现这一目标的方法。
答案是肯定的,是否定的。是的,如果使用得当,不,不是你做的。不要使用 UNICLODE/ANSI 特定版本的函数,除非您要强制使用 UNICODE 或 ANSI。您的代码应如下所示:
CString csText;
GetDlgItemText(IDC_FILE_NAME, csText);
注意 GetDlgItemText
这已经在VS2015中进行了测试:
//
// Get string from CEdit m_ceDate;
// where
// DDX_Control(pDX, IDC_EDIT_DATE, m_ceDate);
char cdateBuf[128];
UINT nCountOfCharacters = GetDlgItemText(IDC_EDIT_DATE, cdateBuf, 16);
CString csDate = cdateBuf;