【发布时间】:2009-05-06 04:20:44
【问题描述】:
我有一个带有对话框的 C++ MFC 应用程序,我想根据组合框中的选择动态更改控件的类型。对话框资源从一个普通的旧编辑控件开始,然后我调用 SubclassDlgItem 以更改为自定义控件类型。
到目前为止一切顺利。现在,当用户更改屏幕上不同组合框中的选择时,我想将此控件更改为不同的自定义类型。因此,我通过在指向该控件的自定义类的指针上调用 delete 来销毁现有控件。然后我调用 ::CreateEx 来重新创建我的编辑控件并再次调用 SubclassDlgItem 来创建新的自定义控件。
我的问题是这闪烁相当多,我想我在我的自定义控件之上使用 ::CreateEx 创建了编辑控件。关于如何消除闪烁的任何想法,特别是如果用户正在快速更改控制组合框的内容?
【问题讨论】:
-
我怎样才能让它只使用一个控件 ID?我是否需要再次调用 Unsubclass 和 Subclass 来切换与 ID 绑定的控件?
标签: c++ mfc user-interface