2011-02-14 81 views
1

我希望能够在树形视图中以斜体形式显示单个节点上的文本。这听起来很简单,但我一直无法知道如何。在节点上没有允许它的属性。我可以使它变粗或改变颜色或设置背景颜色,但不能使其变为斜体。有谁知道如何做到这一点?在VB6树视图中创建一个节点斜体

回答

3

你是对的,听起来很简单。可悲的是,现实并非如此简单。 VB6中的treeview控件是常用控件树视图的封装,但它并没有公开控件的大部分功能。您可以通过继承控件的子类并处理作为所有者绘制的项目绘画事件来完成您想要的任务。我没有VB6 IDE设置方便,但这里有几个很好的资源为你检查出:

布拉德·马丁内斯的网站上VB6性交提示:
http://btmtz.mvps.org/treeview/

和我个人最喜欢的:
Steve McMahon的VBAccerator网站
http://www.vbaccelerator.com/home/VB/Code/Controls/TreeView/TreeView_Control/article.asp它有一个很好的自定义控件实现,你可以直接放到你的项目,源代码和所有。

这两个网站是必不可少的VB6开发与卡尔·彼得森的网站一起: http://vb.mvps.org/

祝你好运!

1

有没有简单的方法来做到这一点。 Basicly你必须:从Microsoft Windows公共

  • 使用TreeView控件控制5.0(SP2)
  • 子控件的hWnd
  • NM_CUSTOMDRAW
    • OCM_NOTIFY消息检查台上CDDS_PREPAINT回报CDRF_NOTIFYITEMDRAW
    • 在舞台CDDS_ITEMPREPAINT中选择通过hDC的自定义字体并返回CDRF_NEWFONT

有没有简单的方法来从TreeView节点hItem无论是。我正在使用这种黑客方式:

Private Function pvGetHItem(oNode As ComctlLib.Node) As Long 
    Call CopyMemory(pvGetHItem, ByVal ObjPtr(oNode) + 68, 4) 
End Function