为什么宏函数ListView_GetSelectedColumn()不';不行?它一无所获

为什么宏函数ListView_GetSelectedColumn()不';不行?它一无所获,c,winapi,desktop-application,C,Winapi,Desktop Application,我试图获取ListView控件的选定列索引,但是宏函数ListView\u GetSelectedColumn返回零,无论我如何单击 a=ListView\u GetSelectedCount(lpNmhdr->hwndFrom); a=999; a=列表视图\u GetSelectedColumn(lpNmhdr->hwndFrom); a=发送消息(lpNmhdr->hwndFrom,LVM_GETSELECTEDCOLUMN,0,0); 我可以复制您的问题。但是我通过以下步骤让它工作。这

我试图获取ListView控件的选定列索引,但是宏函数
ListView\u GetSelectedColumn
返回零,无论我如何单击

a=ListView\u GetSelectedCount(lpNmhdr->hwndFrom);
a=999;
a=列表视图\u GetSelectedColumn(lpNmhdr->hwndFrom);
a=发送消息(lpNmhdr->hwndFrom,LVM_GETSELECTEDCOLUMN,0,0);

我可以复制您的问题。但是我通过以下步骤让它工作。这是我的测试结果:

要使用ListView_GetSelectedColumn,请在中指定Comctl32.dll版本6 舱单。创建清单并使应用程序能够使用 视觉风格

参考和

您需要完成三个步骤:

  • 链接到ComCtl32.lib并调用InitCommonControls。(您已经完成了。)
  • 将名为YourApp.exe.manifest的文件添加到具有XML清单格式的源树中。对我来说,情况如下:
  • 将清单添加到应用程序的资源文件中,如下所示:

  • 它是否有选定的列?我认为你不能用鼠标选择列,我认为你必须先使用
    LVM_SETSELECTEDCOLUMN
    。你的应用程序中是否使用Windows Vista+和ComCtrl v6?如果没有,那么
    LVM\u GETSELECTEDCOLUMN
    将无法工作。@leibso很乐意提供帮助。你可以这样做,这将有助于其他人在这个问题上搜索。