我已经在这里阅读了一些关于如何实现这一点的线索。我尝试了几个答案,但到目前为止都没有。我只想获得一个Edit控件的内容,在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' s 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也可以使用多字节,但我更喜欢宽广的方式。
答案 0 :(得分:1)
CString
,DDX
和GetDlgItemText
表示您使用的是MFC,不 WTL - 是吗?
MFC的GetDlgItemText有两个重载:
int GetDlgItemText(
int nID,
LPTSTR lpStr,
int nMaxCount
) const;
int GetDlgItemText(
int nID,
CString& rString
) const;
你的电话也不匹配。使用CString的形式,没有长度。