怎么让图标前出现“+”和“-”号呢?还有就是怎么让图标和节点名称之间出现虚线呢?

解决方案 »

  1.   

    属性设置
    + - 号:Has Buttons true
    虚线:Has Lines true
      

  2.   

    创建之后调用GetWindowLong以GWL_STYLE 为参数获得其style,而后调用SetWindowLong同样以GWL_STYLE 为参数设置其风格。其中:
    TVS_HASLINES, TVS_LINESATROOT, and TVS_HASBUTTONS这几个参数可以满足你的要求。从字面上就可以推测出其意思来了吧
      

  3.   

    1、让图标前出现“+”和“-”号:
            a、插入结点时设置
            在你创建好树型视图时,是个空的树型视图,要用TreeView_InsertItem向树型视图添加结点。这是就是涉及到一个结构体TV_INSERTSTRUCT,该结构体TV_INSERTSTRUCT中又有另一个与结点直接相关的结构体TV_ITEM,看看TV_ITEM中的cChildren:
    cChildren 
    Indicates whether the item has associated child items. It is one of the following values. 
    0  - The item has no child items.  
    1  - The item has one or more child items.  
    只要将cChildren设置成1就标识有子结点,有字节点就能显示“+”和“-”
            b、创建好后设置
            思想与上面相同,只要将TV_ITEM的cChildren设置成1就可,代码说明:
    TV_ITEM tvi;tvi.hItem = hParent;   // 要设置的结点的句柄
    tvi.mask = TVIF_CHILDREN;
    tvi.cChildren = 1;      // 指定子结点个数为1,便会显示"+","-"号
    TreeView_SetItem(GetDlgItem(hWnd,ID_TREEV),&tvi);2、图标和节点名称之间出现虚线
            看看我的树型视图的样式总结就懂了。
           具有 TVS_HASBUTTONS 样式的树控件 (Tree Control) 在每一父项的左边添加一个按钮。单击该按钮可展开或折叠子项,这是除了用双击父项的方法展开或折叠子项以外的另一种方法。
           TVS_HASBUTTONS 样式不向在层次结构根位置的项添加按钮。若要向层次结构根位置的项添加按钮,必须组合 TVS_HASLINES、TVS_LINESATROOT 和 TVS_HASBUTTONS 样式。
           TVS_HASLINES 样式通过在子项与其相应的父项之间画上一条连线,增强了树控件 (Tree Control) 层次结构的图形化表示形式。这种样式不链接层次结构根位置的项。若要链接层次结构根位置的项,需要组合 TVS_HASLINES 和 TVS_LINESATROOT 样式。
           TVS_LINESATROOT - 在根/子结点之间绘制连线,如果没有指定TVS_HASLINES风格,该风格也就会被忽略。
           TVS_EDITLABELS - 使用户编辑树控件项的标签成为可能。
           TVS_SHOWSELALWAYS - 在失去焦点时也显示当前选中的结点;
           TVS_DISABLEDRAGDROP - 不允许Drag/Drop(拖拽)
           TVS_NOTOOLTIPS - 禁用树视图 (TreeView) 控件的自动工具提示功能。当鼠标光标移到某项上时,如果该项的整个标题当时是不可见的,则自动工具提示功能自动显示工具提示,其中就包含该项的标题。
          TVS_SINGLEEXPAND – 当选中某一结点,结点将被自动展开