遇到的一个需求,在DUI列表控制上,选择一行后,响应单击事件弹出对话框。
出现的问题是第一次选择没问题,可以正常弹出,但当想继续在已选中的行上单击时,就无法响应这个选择事件了。所以写在if (msg.sType == _T("itemselect"))事件里的函数是没法响应的。
我的解决方法是:用itemclick事件和killfocus事件配合使用。
主要目的是:当在已选中的行中单击时,虽无法响应itemselect选择事件,但却可以响应itemclick点击事件,索引就可以用一个成员变量来保存,确保点击事件响应的行还是之前选中的。要注意做其他操作时,点击事件itemclick就不用响应了,所以要用一个bool值来控制,响应itemselect时有效,响应killfocus时设置bool值无效。
如果需要响应双击事件的话,好像是一个什么ItemActive的,可以去查查。