在 Visual C++ 中以编程方式创建新的 UI 控件

Creating new UI controls programmatically in visual c++

我刚刚开始使用 visual studio c++ (2010) 和 windows 形式,但我一直无法找到如何创建新的 UI 项目来响应事件。我想要发生的是单击一个按钮,并有一个新行,出现几个文本框和按钮,如果我继续单击,一个按钮将删除该行,将出现更多行,命名为 row0、row1 等。我查看了此页面,(http://msdn.microsoft.com/en-us/library/aa984255(v=vs.71).aspx),关于以编程方式添加控件,但是当我在单击事件中添加新文本框时,文本框仅在事件范围内创建(正如预期的那样!),但我希望能够在 newRow 单击事件中创建它,但访问它和 .我想制作一个 'row' 类,具有 row.text 和 row.deleteButton 属性,并且在每次创建一行时,将为按钮单击和文本编辑创建相应的事件。

有没有办法做到这一点,即可以创建一个函数,通过传递所需的名称来创建新对象?

实现此功能的诀窍是您需要在事件处理程序之外进行声明以跟踪新添加的 UI 组件。在 link 中,您已指定添加的 TextBox 在事件函数内的本地范围内,并且当事件完成时,它将从堆(即内存)中删除。

因此,一种解决方案是将 UI 组件列表添加到您的表单,然后将事件添加到此组件列表或从中删除。要使此解决方案正常工作,您可能需要阅读对象列表(或可能是字典)以及如何处理这些对象。

很抱歉,回答比较笼统,但问题也很广泛...:)