多视图结构的程序,其中有一个继承于TreeView的视图,在其中的OnInitialUpdate()添加了如下代码
CTreeView::OnInitialUpdate();CTreeCtrl& trCtrl = GetTreeCtrl();
HTREEITEM hItem;
hItem = trCtrl.InsertItem( "aaa", 0, 2 );
trCtrl.InsertItem( "bbb", 1, 3, hItem );
trCtrl.InsertItem( "ccc", 1, 3, hItem );
却发现OnInitialUpdate()函数被调用了两次??也就是说在树中会出现两个aaa bbb ccc,这是怎么一回事??
CTreeView::OnInitialUpdate();CTreeCtrl& trCtrl = GetTreeCtrl();
HTREEITEM hItem;
hItem = trCtrl.InsertItem( "aaa", 0, 2 );
trCtrl.InsertItem( "bbb", 1, 3, hItem );
trCtrl.InsertItem( "ccc", 1, 3, hItem );
却发现OnInitialUpdate()函数被调用了两次??也就是说在树中会出现两个aaa bbb ccc,这是怎么一回事??
设置一个断点,看一下调用堆栈?
然后在转到AfxWndProcBase()函数,在这个函数末尾,系统提示“没有可用于当前位置的源代码”,这样反复了几次之后就又会去调用OnInitialUpdate()函数?