当涉及到在 MFC 中获取编辑框(Edit Control)的数据时,你可以使用以下几种常用方法:
CString strText;
GetDlgItemText(IDC_EDIT_CONTROL_ID, strText);
这个函数通过指定编辑框的 ID 获取编辑框的文本内容,并将其存储在一个 CString 对象中。
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT_CONTROL_ID);
CString strText;
pEdit->GetWindowText(strText);
这种方法先获取 CEdit 对象的指针,然后通过 GetWindowText 函数获取编辑框的文本内容。
在使用 MFC 的对话框和控件绑定时,你可以在 DoDataExchange 函数中使用 DDX_Text 宏来获取编辑框的数据,如下所示:
DD_Text(pDX, IDC_EDIT_CONTROL_ID, m_strEditVariable);
这将把编辑框的文本内容存储在一个变量(例如 m_strEditVariable)中。
如果你已经在 DoDataExchange 函数中设置了控件和变量的映射关系,你可以使用 UpdateData 函数来获取编辑框的数据,如下所示:
UpdateData(TRUE);
这将会更新与编辑框相关联的变量。
如果你在自定义对话框类中重写了 DoDataExchange 函数,可以使用 CDataExchange 对象来获取编辑框数据。你可以使用 DDX_Text 成员函数,如下所示:
void CCustomDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_CONTROL_ID, m_strEditVariable);
}
这将把编辑框的文本内容存储在一个变量(例如 m_strEditVariable)中。
CWnd* pEdit = GetDlgItem(IDC_EDIT_CONTROL_ID);
CString strText;
pEdit->GetWindowText(strText);
这个方法首先获取 CWnd 对象的指针,然后使用 GetWindowText 函数来获取编辑框的文本内容。
CString strText;
GetDlgItemText(IDC_EDIT_CONTROL_ID, strText.GetBuffer(MAX_TEXT_LENGTH), MAX_TEXT_LENGTH);
strText.ReleaseBuffer();
这个方法使用 GetDlgItemText 函数,并提供一个缓冲区来存储编辑框的文本内容。
CString strText;
CWnd* pEdit = GetDlgItem(IDC_EDIT_CONTROL_ID);
pEdit->SendMessage(WM_GETTEXT, (WPARAM)MAX_TEXT_LENGTH, (LPARAM)strText.GetBuffer(MAX_TEXT_LENGTH));
strText.ReleaseBuffer();
这个方法使用 SendMessage 函数,并发送 WM_GETTEXT 消息来获取编辑框的文本内容。
这些方法提供了多种途径来获取 MFC 中编辑框的数据。根据你的具体情况,选择适合的方法来获取编辑框数据。