mfc 如何使编辑框和变量关联

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc 如何使编辑框和变量关联相关的知识,希望对你有一定的参考价值。

用mfc做一个对话框,里面有六个编辑框,输入数值之后,按确定按钮,然后就能绘制出一条bezier曲线,请问如何将编辑框中输入的数值赋给六个变量,如何按确定按钮之后能使程序运行???

参考技术A 方法很多:
其中一种容易说的
int num1;
char ch1[15]; // 如果数据会很长的话就设大点
GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,15);
num1=atoi(ch1);
其中IDC_EDIT1是对话框ID,num1是你想要的数据。
向对话框写数据
itoa(num1,ch1,10); // 10表示十进制
GetDlgItem(IDC_EDIT1)->SetWindowText(ch1);
参考技术B 代码如下:
DDX控件与变量绑定,void CXXXDlg::DoDataExchange(CDataExchange* pDX)

DDX_Text(pDX, IDC_EDIT, m_editStr);
参考技术C 1. Message Maps选项卡
它是ClassWizard对话框中最重要的选项卡,主要完成创建新类、添加、删除消息处理函数等任务。
该选项卡中包含了两个下拉列表框:Project下拉列表框和Class name下拉列表框;三个列表框:Object IDs列表框、Message列表框和Member functions列表框;一个文本信息框;四个工具按钮。
★ Project下拉列表框:该下拉列表框用于选择当前操作的项目。当当前打开的工作区中包含多个项目文件时,用户可以从这个下拉列表框中选择将要操作的项目文件。对于单项目工作区来说,其默认值就是项目文件。
★ Class name下拉列表框:该下拉列表框用于选择当前要操作的类。当用户在Class name下拉列表框中选中了某个类之后,Object IDs窗口中的内容将会发生相应的变化。
★ Object IDs列表框:该列表框用于显示当前选定类中能够产生消息的对象的ID值。这些对象包括菜单选项、工具栏按钮选项、对话框以及各种控件等。
通常Object IDs列表框中所包含的第一个对象就是当前类名。
★ Message列表框:Message列表框中列出了对应于Object IDs列表框中所选中的当前项可以处理的消息以及可被重写的MFC虚函数。当Object IDs列表框中选定当前类名时,Message列表框前部分显示的是当前类所能覆盖的虚拟函数,后部分显示的是能够处理的消息。如Object IDs列表框中选定其它对象,则Message列表框显示的就是当前项可以处理的消息。
★ Member functions列表框:Member functions列表框中列出了在Class name下拉列表框中所选中的当前类包含的所有成员函数。其中用字母“V”标出的是MFC虚函数,用字母“W” 标出的是Windows消息处理函数。
★ 文本信息框:在Project下拉列表框的下方有一个文本信息框,用于显示当前选中类的源文件,包括.h文件和.cpp文件。该文本信息框中显示的内容会随着选定类的变化而变化。
★ Add Class按钮:该按钮用于向当前的Project中添加一个新类,新类可以是自己创建,也可以是从已有的文件中选取。
★ Add Function按钮:该按钮用于向当前选定类中为当前选定的消息添加一个消息处理函数。其中类是在Class name下拉列表框中选定的类;而当前消息则是在Message列表框中选定的消息。
Add Function按钮平时是灰化禁止的,只有当用户在Message列表框中选中某个特定的消息之后,该按钮才能正常显示,即此时才能使用。
★ Delete Function按钮:该按钮用于在当前选定的类中删除已有的成员函数。Delete Function按钮平时是灰化禁止的,只有当用户在Member functions列表框中选中某个消息处理函数之后,才能选择该按钮。
★ Edit Code按钮:单击该按钮将打开编辑窗口,并将光标位置自动跳到当前选定的成员函数的源代码处。
2. Member Variables选项卡
该选项卡主要用于添加与对话框中的控件相关联的成员变量,以便程序能利用这些成员变量与对话框中的控件进行数据交换。该选项卡与Message Maps选项卡一样,也包含Project下拉列表框和Class name下拉列表框,分别用于选定用户操作的当前项目和当前类;Add Class按钮用于向当前项目中添加一个新类;一个文本信息框,用于显示当前选中类的源文件。
此外,Member Variables选项卡中还包含另一个列表框以及另外四个工具按钮。列表框中共有3列数据,分别为:
★ Control IDs:该项显示了当前选定类中能够映射成员变量的控件的ID值。所谓能映射成员变量的控件,就是可以使用类中的成员变量来代表某个控件,当控件发生改变时,该成员变量的值也发生相应变化。
★ Type:该项表示成员变量的类型。
★ Member:该项表示成员变量的名字。
注意:并不是所有的类都有这些信息,只有在选择了对话框类、有格式视图类或记录视图类时才能显示出这些信息。
★ Add Variable按钮:该按钮用于为当前选定的控件添加一个成员变量。
★ Delete Variable按钮:该按钮用于删除一个现有的成员变量。该按钮平时是灰化禁止的,只有当用户在Control IDs列表框中选中某个成员变量以后,才能选择该按钮执行删除工作。
★ Update Columns按钮:该按钮用于选定一个数据源,只在记录集合类中才可以使用。
★ Bind All按钮:只适用于记录集合类,单击此按钮将把所有未绑定的记录集里的数据成员绑定到数据源的一个表中相应的列上。在默认情况下,MFC AppWizard和ClassWizard将绑定所有的列,所以很少需要使用数据绑定。如果通过删除相关的数据成员将一些或所有列取消绑定,那么在这之后还可以重新绑定它们。
3. Automation选项卡
该选项卡允许用户加入方法或属性以增强Automation功能。
4. ActiveX Events选项卡
该选项卡允许用户加入事件以支持ActiveX控件。
5. Class Info选项卡
该选项卡用于显示和设置当前选定类中的一些重要信息。本回答被提问者采纳

在 mfc 中单击按钮时更改编辑框内容

【中文标题】在 mfc 中单击按钮时更改编辑框内容【英文标题】:Change Edit Box content when Button is clicked in mfc 【发布时间】:2012-01-31 06:34:41 【问题描述】:

我在对话框上有一个编辑框和一个按钮。单击按钮时,如何更改编辑框运行时中的内容?我必须从文件中读取新记录并将其发布到编辑框中,因为单击按钮并且我正在使用 mfc。

【问题讨论】:

【参考方案1】:

您可以通过调用从CWnd 基类继承的SetWindowText method 来设置编辑控件的文本(由MFC 中的CEdit class 包装)。

那么您需要做的就是响应按钮控件上的单击事件。您可以通过在父窗口的 OnCommand method 内的相应按钮控件中侦听 BN_CLICKED notification 来做到这一点。

类似:

BOOL CMyDialog::OnCommand(WPARAM wParam, LPARAM lParam)

    if (HIWORD(wParam) == BN_CLICKED && LOWORD(lParam) == IDC_MYBUTTON)
    
        m_Edit.SetWindowText(TEXT("My string"));
    
    return CWnd::OnCommand(wParam, lParam);

获取和阅读有关 MFC 的书籍会很有帮助。这是相当基本的东西,但是如果您还不了解基本概念,则可以在一个答案中涵盖很多内容。

使用类向导会更容易... 使用 Ctrl+W 键调用它并按照屏幕上的说明进行操作。你最终会得到类似的东西:

void CMyDialog::OnMyButton()

    m_Edit.SetWindowText(TEXT("My string"));

【讨论】:

【参考方案2】:

一旦您按下按钮,在大多数情况下,更改编辑控件中文本的最简单方法是:

SetDlgItemText(IDC_EDIT_ID, "Desired Text String")

其中IDC_EDIT_ID 是编辑控件的ID(在properties 窗口中设置)

【讨论】:

以上是关于mfc 如何使编辑框和变量关联的主要内容,如果未能解决你的问题,请参考以下文章

如何将自旋控件关联到 MFC 中的不同编辑框

急!MFC中给一个对话框的不同编辑框关联变量后如何获得多个不同变量的值进行计算处理?????

MFC编辑框关联的变量怎么用UpdateData(FALSE)无法直接写到编辑框中啊,而是需要手动点编辑框

想用MFC下的SetWindowTextW给编辑框输出数值类型的变量,求教

从 MFC 中的编辑控件写入文本 [重复]

MFC中如何给编辑框设置文本内容?