Hello,

I've written code that creates a new tree view item with a "default label" that I immediately expect the user to change (much like when creating a new folder in Explorer). The text they enter must conform to C naming conventions. But if the user cancels editing the default label I want to change it to something safe anyway.

My TVN_ENDLABELEDIT handler looks like thus:-
Code:
case TVN_ENDLABELEDIT:
{
    LPNMTVDISPINFO lpTvdi = (LPNMTVDISPINFO)lParam;

    if (lpTvdi->item.pszText)
    {
        if (!lstrlen(lpTvdi->item.pszText))
        {
            // Nothing entered; Set to a safe name
            lpTvdi->item.pszText = "t_struct1";
            // This is how dialogs set the return value, in case you didn't know
            SetWindowLong(hDlg, DWL_MSGRESULT, TRUE);
        }
        else
        {
            // Validate
        }

    }
    else
    {
        // Canceled; Set to a safe name if necessary
        // HOW?!?
    }

    break;
}
I've tried changing szText and sending TVM_SETITEM to the tree view control, but it doesn't seem to work. Any ideas?