我有一个在运行时动态创建的CFormView。然而,真的很奇怪,因为OnInitialUpdate永远不会被调用该视图。我在函数中设置了一个断点,它永远不会被击中一次,即使我可以看到屏幕上显示的视图。这是一个问题,因为每当我尝试使用视图的成员控件时,程序都会因为未初始化而崩溃。是什么给了什么?
答案 0 :(得分:0)
编辑:您可以手动调用OnInitialUpdate;你不一定需要覆盖它。
我想我可能是this bug的受害者。我的解决方法是覆盖OnInitialUpdate()
并在动态创建视图后立即手动调用它。这仅在被覆盖函数中的第一行是对父CFormView::OnInitialUpdate()
的调用时才有效。
答案 1 :(得分:0)
我目前正在使用CFormView :: OnActivateView()来解决这个问题,然后测试/设置一个成员变量标志(m_bInitialised),以便我可以确保我想要的代码只能在CFormView :: OnInitialUpdate()中获取第一次跑。
似乎比从外部手动调用OnInitialUpdate()稍微更自包含,但最多只是稍微不那么icky: - /