视觉C++从Cedit获取字符串



这可能是一个非常基本的问题,但我似乎无法理解。 我正在从事一个可视化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; 

最新更新