mfc如何将一个编辑框中的数字追加到另一个编辑框,不是覆盖,而是接在原来的后面显示?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc如何将一个编辑框中的数字追加到另一个编辑框,不是覆盖,而是接在原来的后面显示?相关的知识,希望对你有一定的参考价值。

具体一点就是如何在第一个编辑框中输入数字后按回车键即可将数字显示在第二个编辑框的第一排,再输入一个数字后按回车键又可将第二个数字显示在第二个编辑框的第二排,以此类推,不断更新?

关键是重载OnOK()函数,工程建好以后添加一个编辑框一个列表框,分别绑定control类型的变量为c_edit,c_list,绑定完为对话框重载OnOK(),里面代码改为如下即可
// TODO: 在此添加专用代码和/或调用基类
CString s;
c_edit.GetWindowTextW(s);//从编辑框获取字符串到s
c_list.AddString(s);//把s追加到listbox,listbox必须去掉sort属性,否则会自动排序
c_edit.SetFocus();//焦点回到编辑框,方便下一次输入操作
c_edit.SetWindowTextW(_T(""));//清空编辑框
//CDialog::OnOK();
最后这句必须注释掉,否则按回车就退出了

重载OnOK()方法
vc6下,找到对话框的头文件,对话框类里面public下添加virtual void OnOK();
对话框cpp最后加void Cxxdlg::OnOK()
这里的函数是空的,没有需要注释掉的语句
vs2008下,找到对话框头文件,鼠标点到定义对话框类的第一句(也就是class xx那里),右边属性框会出现一个小方块,点开,拉下来找到OnOK()直接添加即可,这里会默认有一句CDialog::OnOK();注释掉
参考技术A 你用过str+没有?
直接把两个字符串加起来,应该就可以了吧?

如何限制在 VS 设计器中创建的编辑框中的数字

【中文标题】如何限制在 VS 设计器中创建的编辑框中的数字【英文标题】:How to limit numbers in edit box created in VS designer 【发布时间】:2019-06-18 16:18:24 【问题描述】:

我在 Visual Studio 中有一个项目。我在设计器视图中创建了一个对话框,它会在 .rc 文件中生成一堆 ID 和属性。其中一个控件是设置了 ES_NUMBER 的编辑框。

如何设置最小值和最大值?我看到的所有答案都是针对以编程方式创建的控件,其中一个是 CEdit 的子类。使用 .rc 时甚至可以生成子类编辑控件吗?

【问题讨论】:

winapi是纯c语言,这里c++标签无关。 scanf 类似的问题 - 您只能在输入范围后检查范围,尽管可以逐位检查。不过,这可能会给用户带来麻烦,在使用退格等和编辑内容时,禁止使用不完整的值。 “子类”这个词似乎与 C++ 相关。 @user3007190 似乎,但实际上并非如此。 “子类化” Windows 控件不同于并且绝不需要“子类化” C++ 类或以任何方式使用 C++。它们在概念上的相似程度取决于您现在的头是如何拧紧的,以及您从什么角度和距离观看事物。 参见 MSDN 上的 Subclassing Controls。 【参考方案1】:

使用自动好友Up-Down control。

【讨论】:

AFAIK 这只会限制上下控制的最小/最大值,但不会影响手动输入的数字。 @zett42 这可能是真的,但我猜如果你从 up-down 控件中检索值,它将在限制范围内。

以上是关于mfc如何将一个编辑框中的数字追加到另一个编辑框,不是覆盖,而是接在原来的后面显示?的主要内容,如果未能解决你的问题,请参考以下文章

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

怎么用MFC,将复选框选中的文字在编辑框中显示出来,例如下面的图片,就是说将选中的课程在编辑框中显示出

mfc中,怎么把一个窗口的编辑框内容调用到另一个窗口的控件里

MFC的编辑框里不能按时间依次显示递增的数字

如何从 GUI 中的编辑框中检索数据

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