2015-11-17 32 views
0

我有一個MFC應用程序(Visual Studio 2010中)根據用戶的輸入結果動態地創建和銷燬大量editboxes的,下拉框和按鈕。與動態創建的控件MFC應用程序突然停止響應

我使用的「創建」功能來動態地創建控件,以及刪除控制當系統第一次調用每個控制「DestoryWindow」功能,然後刪除每個控制指針。

迭代了一定數量的創建/刪除控件後,如果我嘗試「打開」下拉菜單,系統無法打開它並停止響應我的輸入 - 但如果我不嘗試添加更多控件打開下拉菜單。

可能有人請讓我知道如何解決這個奇怪的問題?這一次幾乎讓我發瘋...

+1

也許你有資源泄漏? – marcinj

+1

尋求調試幫助的問題(「**爲什麼不是這個代碼工作?」)必須包含所需的行爲,特定的問題或錯誤*以及*在問題本身中重現它所需的最短代碼* **。沒有**明確問題陳述**的問題對其他讀者沒有用處。請參閱:[如何創建最小,完整和可驗證示例。](http://stackoverflow.com/help/mcve) –

回答

2

解決方法很簡單 - 不要試圖「打開」該菜單:)

現在我假設你想FIX問題。那麼你需要弄清楚發生了什麼。該系統可以無響應出於多種原因,最有可能的兩個之一:

  • 你是在你的主UI線程繁忙的循環。
  • 您正在等待從未發生過的事件。例如,死鎖。

當您的應用程序被凍結時,嘗試附加調試器,並執行Debug - > Break All。然後看看哪些代碼正在執行。如果此「凍結」的原因不明顯,請張貼相關代碼。

相關問題