C++ ListView中的系统链接

C++ ListView中的系统链接,c++,windows,winapi,C++,Windows,Winapi,如果我有一个处于报告模式的listview控件,如何将syslink控件粘贴到其中一列中? 我想要一个用户可以在其中一列中单击的链接。listview控件本身不支持此功能 您可以创建一个真正的Syslink控件,它是listview的子控件。每当列表滚动时(注意WM_HSCROLL/WM_VSCROLL消息),或添加或删除项目时,或对其进行排序时,您都需要对listview进行子分类并重新定位Syslink控件。您可以使用LVM_GETSUBITEMRECT来确定它的位置 或者,您可以使用NM_

如果我有一个处于报告模式的listview控件,如何将syslink控件粘贴到其中一列中?

我想要一个用户可以在其中一列中单击的链接。

listview控件本身不支持此功能

您可以创建一个真正的Syslink控件,它是listview的子控件。每当列表滚动时(注意WM_HSCROLL/WM_VSCROLL消息),或添加或删除项目时,或对其进行排序时,您都需要对listview进行子分类并重新定位Syslink控件。您可以使用LVM_GETSUBITEMRECT来确定它的位置


或者,您可以使用NM_CUSTOMDRAW以不同的颜色显示“链接”,并在用户单击链接时处理NM_CLICK以捕获。我认为这是最简单的方法。请注意,如果希望手动光标显示在链接上,则仍然需要对列表进行子分类,并自己处理WM_SETCURSOR。

listview控件本身不支持此操作

您可以创建一个真正的Syslink控件,它是listview的子控件。每当列表滚动时(注意WM_HSCROLL/WM_VSCROLL消息),或添加或删除项目时,或对其进行排序时,您都需要对listview进行子分类并重新定位Syslink控件。您可以使用LVM_GETSUBITEMRECT来确定它的位置


或者,您可以使用NM_CUSTOMDRAW以不同的颜色显示“链接”,并在用户单击链接时处理NM_CLICK以捕获。我认为这是最简单的方法。请注意,如果您希望通过链接显示一个指针,您仍然需要对该子类进行分类,并自己处理WMLSET游标。

如果您计划有很多包含超链接的列,您可能需要考虑一个所有者绘制的ListVIEW。您甚至可以将SysLink控件直接呈现给ListVIEW设备CONTEXT。如果您计划有很多包含超链接的列,您可能需要考虑所有者绘制的ListVIEW。您甚至可以将syslink控件直接呈现给ListView设备上下文。