如何将 CEdit 类型的数据转换为 CString 类型的数据以及如何在消息框中显示? [复制]
Posted
技术标签:
【中文标题】如何将 CEdit 类型的数据转换为 CString 类型的数据以及如何在消息框中显示? [复制]【英文标题】:How to convert CEdit type of data in to CString type data and how to display that in a messagebox? [duplicate] 【发布时间】:2015-07-22 11:07:40 【问题描述】:我想知道来自 CEdit(由用户输入)的数据是如何显示在消息框上的。
我想接受用户的输入并需要在消息框中显示它。简单但我无法将 CEdit 类型(用户输入)转换为 CString 类型(我必须在消息框中显示)。
这是我的代码片段
In .h file
CEdit* pEdit = new CEdit;
CString text;
In .cpp file
pEdit.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(150, 10, 500, 50), this, 1);
pEdit.GetWindowText(text);
【问题讨论】:
使用GetWindowText
,正如duplicate post 中已经提到的,可能还有很多其他的。
请详细说明....
您更新的代码片段甚至无法编译...您需要pEdit->
而不是.
,如果您已经拥有GetWindowText
,那么问题出在哪里? (不要用答案更新问题!)。
【参考方案1】:
正如您以编程方式创建文本框一样。
编辑:
在头文件中声明CEdit
CEdit* pEdit;
将此代码写入OnInitdialog()
函数中
pEdit = new CEdit;
pEdit->Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,CRect(150, 10, 500, 50), this, 1);
现在单击任何按钮即可显示消息框。例如
OnButtonOk()
CString strText;
pEdit->GetWindowText(strText);
AfxMessageBox(strText);
【讨论】:
这就是我以编程方式创建文本框的方式 CEdit* pEdit = new CEdit; pEdit.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,CRect(150, 10, 500, 50), this, 1); @YateeshKR,我已经更新了代码。检查一次编辑。 @Yateesh 重要的是你注意到@Himanshu 在指针上使用了->
,我认为你没有这样做。【参考方案2】:
documentation for CEdit 明确指出:
要从 CEdit 对象设置和检索文本,请使用 CWnd 成员函数 SetWindowText 和 GetWindowText,它们设置或获取编辑控件的全部内容,即使它是多行控件。
因此,鉴于您创建了 CEdit
对象,
CString strOut;
pEdit->GetWindowText(strOut);
CWnd::GetWindowText
【讨论】:
【参考方案3】:有两种方法可以做到这一点。
您可以将编辑控件绑定到CString
变量。当你想获取文本数据时,调用UpdateData(TRUE)
,CString 变量存储文本搅拌数据。
它也可以如下工作:
CString textStr;
CEdit* pEdit = new CEdit;
//call when you want get text
pEdit ->GetWindowText(textStr);
【讨论】:
我以编程方式创建了一个文本框,所以我无法找到 CEDIT_CONTROL_ID 我修改了我的代码,你需要使用->
而不是.
,然后你的代码才能工作,我测试过。也许您的问题是何时调用 GetWindowText
函数?可以为按钮注册回调函数,回调函数调用GetWindowText
函数。以上是关于如何将 CEdit 类型的数据转换为 CString 类型的数据以及如何在消息框中显示? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
MFC CEdit 将非 ascii 字符转换为 ascii
如何在 TabCtrl 内的子对话框中将焦点设置为 CEdit?