2

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

4

2 回答 2

1

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

似乎比从外部手动调用 OnInitialUpdate() 更加独立,但充其量只是稍微不那么恶心:-/

于 2016-02-29T17:39:24.500 回答
0

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

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

于 2013-08-12T17:44:18.057 回答