永远不会调用MFC OnInitialUpdate

时间:2013-08-12 17:37:39

标签: c++ visual-c++ mfc

我有一个在运行时动态创建的CFormView。然而,真的很奇怪,因为OnInitialUpdate永远不会被调用该视图。我在函数中设置了一个断点,它永远不会被击中一次,即使我可以看到屏幕上显示的视图。这是一个问题,因为每当我尝试使用视图的成员控件时,程序都会因为未初始化而崩溃。是什么给了什么?

2 个答案:

答案 0 :(得分:0)

编辑:您可以手动调用OnInitialUpdate;你不一定需要覆盖它。

我想我可能是this bug的受害者。我的解决方法是覆盖OnInitialUpdate()并在动态创建视图后立即手动调用它。这仅在被覆盖函数中的第一行是对父CFormView::OnInitialUpdate()的调用时才有效。

答案 1 :(得分:0)

我目前正在使用CFormView :: OnActivateView()来解决这个问题,然后测试/设置一个成员变量标志(m_bInitialised),以便我可以确保我想要的代码只能在CFormView :: OnInitialUpdate()中获取第一次跑。

似乎比从外部手动调用OnInitialUpdate()稍微更自包含,但最多只是稍微不那么icky: - /