如何将 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?

MFC:更改 CEdit 的颜色

小 CEdit 控件的 CSpinButtonCtrl 绘图问题

如何将数据框列转换为数字类型?

我们如何将 DataFrame 转换为 Bunch 数据类型? [关闭]