动态创建控件的MFC应用程序突然停止响应

时间:2015-11-17 08:11:47

标签: c++ mfc

我有一个MFC应用程序(Visual Studio 2010),它根据用户的后续输入动态创建和销毁大量编辑框,下拉框和按钮。

我用过"创建"动态创建控件的功能,当删除控件时,系统首先调用" DestoryWindow"每个控件的函数,然后删除每个控件指针。

在迭代了一定数量的创建/删除控件后,如果我尝试"打开"下拉菜单,系统无法打开它并停止响应我的输入 - 但如果我不尝试打开下拉菜单,我可以添加更多控件。

有人可以让我知道如何解决这个奇怪的问题吗?这个让我疯狂......

1 个答案:

答案 0 :(得分:2)

解决方法很简单 - 不要试图“打开”该菜单:)

现在我假设你想要 FIX 这个问题。然后你需要弄清楚发生了什么。由于多种原因,系统可能没有响应,很可能是这两者中的一个:

  • 您在主UI线程中处于繁忙的循环中。
  • 您正在等待从未发生过的事件。例如,死锁。

当你的应用程序被冻结时,尝试将调试器附加到它并执行Debug - >打破一切。然后看看正在执行的代码。如果这种“冻结”的原因不明显,请发布相关代码。