为什么宏函数ListView_GetSelectedColumn()不起作用?它什么也没返回

时间:2019-05-23 03:37:53

标签: c winapi desktop-application

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

a = ListView_GetSelectedCount(lpNmhdr->hwndFrom);
a = 999;
a = ListView_GetSelectedColumn(lpNmhdr->hwndFrom);
a = SendMessage(lpNmhdr->hwndFrom, LVM_GETSELECTEDCOLUMN, 0, 0);

screenshot showing a has value 0 at breakpoint in debugger

1 个答案:

答案 0 :(得分:1)

我可以重现您的问题。但是在执行以下步骤后,我可以正常工作。这是我的测试结果:

enter image description here

  

要使用ListView_GetSelectedColumn,请在以下位置指定Comctl32.dll版本6   清单。创建清单并允许您的应用程序使用   视觉样式。

请参阅ListView_GetSelectedColumn macroEnabling Visual Styles

您需要完成三个步骤:

  1. 链接到ComCtl32.lib并调用InitCommonControls。 (您已经完成了。)
  2. 将一个名为YourApp.exe.manifest的文件添加到具有XML清单格式的源树中。对我来说如下:

enter image description here

  1. 如下所示,将清单添加到应用程序的资源文件中:

enter image description here