我现在作通讯录呢,要实现类似outlook左侧菜单控件单要可以有树型结构可产生新节点,有个那位有源代码或控件的啊 ,急!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    用VB的TREEVIEW不行吗?
    MSDN里有很多例子啊.
      

  2.   

    在VB光盘目录C:\Program Files\DevStudio\VB\samples\CompTool\DataTree中有
    例子,可以看看。
    TreeView的基本操作
    1.增加顶节点
    2.增加分节点
    3.删除所选节点
    4.预防错误的发生
    5.补充说明:
    6.添加弹出式菜单(有点难)
    7.改变背景颜色(调用 API 函数)1.增加顶节点
    TreeView1.Nodes.Add , tvwLast, , "顶节点" '注:基本的语法看Cmctl198.CHM这里就不说了2.增加分节点
    TreeView1.Nodes.Add 1, tvwChild, , "分节点" '1表示一个已经存在的Node对象的索引号,这就是指在索引号为1的Node对象下新建一个分节点,可用下列语句取得你所点击的Node对象的索引号 :
    Private Sub TreeView1_Click() ‘点击TreeView时发生
    index = TreeView1.SelectedItem.index
    End Sub 
    下面这句就是在你任意点击的Node对象下建立一个分节点&127;
    TreeView1.Nodes.Add index, tvwChild, , "分节点"3.删除节点
    TreeView1.Nodes.Remove index '删除你所点击的Node对象4.预防错误的发生
    (1)没有任何Node对象了,你仍然再删除节点,解决方法如下:
    On Error GoTo err
    TreeView1.Nodes.Remove index '删除节点
    err:
    Exit Sub
    (2)没有任何Node对象时,你建立分节点,解决方法如下:
    On Error GoTo err
    TreeView1.Nodes.Add index, tvwChild, , "分节点" '增加顶节点
    Exit Sub
    err:
    TreeView1.Nodes.Add , tvwLast, , "顶节点 " '增加顶节点5.补充说明:
    如要显示图像,请加载ImageList控件与TreeView邦定,然后使用如下语句:
    TreeView1.Nodes.Add , tvwLast, , "顶节点",1 '这里的1就是ImageList控件的图像索引
    最好把TreeView的Style属性设置为7,LineStylen属性设置为1会比较好看些。Hi,如果你把上面的都搞清楚了,就可以学习一下下面的小技巧(有点难度哟)6.增加右键弹出式菜单
    Private Sub TreeView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)Dim nod As NodeIf Button = vbRightButton Then '检测鼠标的点击Set nod = TreeView1.HitTest(x, y) '返回你所点击的Node对象的坐标On Error GoTo EmptyNodenod.Selected = True ' 设置你所点击的Node对象被选中On Error GoTo 0'<<下面是你的自定义菜单>>Me.PopupMenu mnuPopUpEmptyNode:On Error GoTo 0End IfEnd Sub好了好了,看来你的基本操作都差不多会了,现在就来个难的(没有注释),请向下接着看:7.调用 API 函数改变 TreeView 的背景色
    首先声明 API 函数
    Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As LongPrivate Declare Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_STYLE = -16&
    Private Const TVM_SETBKCOLOR = 4381&
    Private Const TVM_GETBKCOLOR = 4383&
    Private Const TVS_HASLINES = 2&下面就是改变背景色的代码
    Dim lngStyle As Long
    Call SendMessage(TreeView1.hWnd, TVM_SETBKCOLOR, 0, ByVal RGB(255, 0, 0))
    '改变背景到红色lngStyle = GetWindowLong(TreeView1.hWnd, GWL_STYLE)
    Call SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle - TVS_HASLINES)
    Call SetWindowLong(TreeView1.hWnd, GWL_STYLE, lngStyle)
      

  3.   

    http://www.ourfly.com/download/downloadlist.aspx?type=VB
    仿outlook的垂直工具条 
      

  4.   

    主要还要形成outlook左侧菜单形式,在其中每个菜单中要有树结构和其他按钮啊