以编程方式将单击消息发送到列表视图以选择/取消选择项目



我有一个ListView,我可以在它上面显示其他控件。当您单击其中一个控件并执行操作时,我可以捕获。我还想向其下方的ListView发送单击通知,以便它就像单击了ListView一样。因此,它将选择/取消选择发生单击的ListView中的项目。我想向ListView发送单击消息,而不是手动选择/取消选择该项目,因为我不想尝试确定它是否是多选列表,按下了哪些键,哪些未单击的项目需要保持选中或未选中,...理想情况下,我会向ListView发送单击通知,它会采取所有适当的操作,就像被单击一样。

我已经尝试从user32.dll调用SendMessage-WM_NOTIFYOCM_NOTIFY都使用NMITEMACTIVATE结构作为lParam。我似乎无法让它工作。我也玩过OnNotifyMessage电话,但没有运气。

我可以成功地从列表视图顶部的控件捕获单击事件,获取光标位置,将其转换为其下方ListView中的项目/子项目,...我似乎无法以编程方式发送需要发送到ListView的任何通知,因此它采取了适当的操作。

编辑:

下面链接中的可能解决方案将允许单击通过控件传递到其下方的 ListView,但您必须为所有控件创建自定义类,并且您将无法处理顶部控件中的任何单击事件。

您需要创建一个类,用于扩展驻留在 ListView 上的控件并重写其事件之一。 这是一个与您的问题非常相似的问题,应该对您有所帮助。 https://stackoverflow.com/a/8635626/3508142

最新更新