Mesoscopic Programming

タコさんプログラミング専門

Programming Tips #4 ツリービューの子アイテムをあとで検索とした場合の注意点

ツリービューアイテムの cChildren を I_CHILDRENCALLBACK に設定してまだ TVN_GETDISPINFO 通知が来ていない場合、子アイテムを調査しようとして TreeView_GetChild() を実行すると NULL になってしまうので注意しろ。
先に TreeView_GetItem() を実行すれば TVN_GETDISPINFO 通知が発行されるので問題ない。

HTREEITEM GetChild( HWND hTree, HTREEITEM hParent )
{
    TVITEM tvItem;

    tvItem.mask  = TVIF_HANDLE | TVIF_CHILDREN;
    tvItem.hItem = hParent;

    TreeView_GetItem( hTree, & tvItem );

    return TreeView_GetChild( hTree, hParent );
}

但し、マスクフラグに TVIF_CHILDREN を忘れずに付けること。

以上。