如何使用 WTL 获取编辑控件的内容?
How can I obtain the content of a Edit Control with WTL?
我已经在此处阅读了一些有关如何实现该目标的主题。我尝试了几个答案,但 none 目前有效。我只是想获取一个编辑控件的内容,在 WTL 中作为 CEdit 给出,并将其保存到一个最好的 std::wstring 中,但我想我无法绕过使用 CString/TCHAR*.
先决条件:
ID of my control: IDC_LINKPASTEEDIT
Member variable IDC_LINKPASTEEDIT is assigned to via DDX MAP: m_linkPasteEdit
到目前为止我尝试了什么:
1.)
CString windowText;
GetDlgItemText(IDC_LINKPASTEEDIT, windowText, 1024);
-> GetDlgItemTextA 的参数列表错误(由 GetDlgItemText 的 DEFINE 引用)
2.)
CString windowText;
m_linkPasteEdit.GetWindowText(windowText);
-> GetDlgItemTextA 的另一个参数列表错误
我也不太清楚正确的列表,因为文档不存在并且查看定义我觉得我的论点应该是正确的。
遗憾的是我没有找到其他资源,我什至下载了一些 html 文档 WTL 库,但 CEdit 似乎没有完全记录在其中。
有什么想法吗?
编辑:
让它以一种非常非常奇怪的方式工作,在我看来这不是真正的 WTL 风格,但至少它是有效的。
1) - 在项目设置中将多字节字符集更改为 UNICODE
2) -
WCHAR windowText[1024];
GetDlgItemText(IDC_LINKPASTEEDIT, windowText, 1024);
通过使用 CHAR 而不是 WCHAR,也可以处理多字节,但我更喜欢宽方式。
CString
、DDX
和 GetDlgItemText
表明您使用的是 MFC,不是 WTL - 是这样吗?
MFC 的 GetDlgItemText 有两个重载:
int GetDlgItemText(
int nID,
LPTSTR lpStr,
int nMaxCount
) const;
int GetDlgItemText(
int nID,
CString& rString
) const;
你的电话也不匹配。使用CString的形式,没有长度。
我已经在此处阅读了一些有关如何实现该目标的主题。我尝试了几个答案,但 none 目前有效。我只是想获取一个编辑控件的内容,在 WTL 中作为 CEdit 给出,并将其保存到一个最好的 std::wstring 中,但我想我无法绕过使用 CString/TCHAR*.
先决条件:
ID of my control: IDC_LINKPASTEEDIT
Member variable IDC_LINKPASTEEDIT is assigned to via DDX MAP: m_linkPasteEdit
到目前为止我尝试了什么:
1.)
CString windowText;
GetDlgItemText(IDC_LINKPASTEEDIT, windowText, 1024);
-> GetDlgItemTextA 的参数列表错误(由 GetDlgItemText 的 DEFINE 引用)
2.)
CString windowText;
m_linkPasteEdit.GetWindowText(windowText);
-> GetDlgItemTextA 的另一个参数列表错误
我也不太清楚正确的列表,因为文档不存在并且查看定义我觉得我的论点应该是正确的。
遗憾的是我没有找到其他资源,我什至下载了一些 html 文档 WTL 库,但 CEdit 似乎没有完全记录在其中。
有什么想法吗?
编辑:
让它以一种非常非常奇怪的方式工作,在我看来这不是真正的 WTL 风格,但至少它是有效的。
1) - 在项目设置中将多字节字符集更改为 UNICODE
2) -
WCHAR windowText[1024];
GetDlgItemText(IDC_LINKPASTEEDIT, windowText, 1024);
通过使用 CHAR 而不是 WCHAR,也可以处理多字节,但我更喜欢宽方式。
CString
、DDX
和 GetDlgItemText
表明您使用的是 MFC,不是 WTL - 是这样吗?
MFC 的 GetDlgItemText 有两个重载:
int GetDlgItemText(
int nID,
LPTSTR lpStr,
int nMaxCount
) const;
int GetDlgItemText(
int nID,
CString& rString
) const;
你的电话也不匹配。使用CString的形式,没有长度。