如何在Visual c++中通过更改组合框中的选项来添加或删除文本框

How to add or remove textboxes by changing the options in the combobox in Visual c++?

本文关键字:选项 添加 文本 删除 组合 Visual c++      更新时间:2023-10-16

我想知道是否可以通过更改组合框中的选项来添加文本框或标签。例如,我在组合框中有两个选项。如果我选择#1,它必须向我显示2个文本框,但如果我选择#2,它必须显示3个文本框。我可以在Visual Studio C++中执行这样的操作吗?

这可以通过两种方式实现:

  1. 使用CreateWindowEx和DestroyWindow动态创建和销毁编辑控件
  2. 使用3个编辑控件静态创建GUI,并使用ShowWindow根据选择设置控件的可见性
  • 拥有您想要的任意数量的文本框。但是隐藏它们
  • 句柄CBN_SELCHANGE(MFC中的ON_CBN_SEL_CHANGE
  • 在处理程序中,根据所选内容显示(或隐藏)文本框

从UI的角度来看,显示/隐藏文本框并不好。您最好适当地启用/禁用它们。您可以在禁用替代文本时放置它们,并在必须启用它们时带回原始更改。

在运行时创建文本框,然后删除它们不是一个好方法。您需要跟踪Win32 UI句柄和/或MFC对象。这种方法还需要更多的UI资源创建/删除、父子关系处理等。