我在编写时,在父窗口接到TVN_ITEMEXPANDED的通告消息(项目被展开)的函数里添加了为该项目的子项目添加子项目的子项目。程序没有问题,运行也成功,每次展开一个项目,子项目的子项目也添加好了,并且会显示加号(+)问题是我在该函数的添加子项目的子项目代码前弹出一个MessageBox后,显示出来的子项目不带加号(+),将窗口最小化再恢复,加号就出来了,应该是重绘的问题,但我觉得不应该会出这种问题。
代码如下:void CBrowserDlg::OnTvnItemexpandedTreeBrowser(NMHDR *pNMHDR, LRESULT *pResult)
{
    LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
    // TODO: Add your control notification handler code here    HTREEITEM hti = pNMTreeView->itemNew.hItem;    //当我在这里添加MessageBox后,加号就显示不出来了    HTREEITEM child = m_treeBrowser.GetChildItem(hti);
    while(child)
    {
        AddSubDirItem(child);
        child = m_treeBrowser.GetNextItem(child, TVGN_NEXT);
    }
    *pResult = 0;
}