我现在在写的一个东西用到了CListCtrl(关于他的问题真不少)
得到当前选择的item有好几个方法,但是我知道的都不适用
我的要求是不论用键盘选择,还是用鼠标选择,都要得到被选中的item
最好不要和LVN_ITEMCHANGED这个消息有关(这消息发太乱),而且不要对诸如SetItemState(iItem,LVIS_SELECTED,LVIS_SELECTED)这样的人为改变选择的函数有反应。就是说直接收客户的键盘鼠标选中的item,程序自己选中的就不管。。
希望能给出主要代码,谢谢
得到当前选择的item有好几个方法,但是我知道的都不适用
我的要求是不论用键盘选择,还是用鼠标选择,都要得到被选中的item
最好不要和LVN_ITEMCHANGED这个消息有关(这消息发太乱),而且不要对诸如SetItemState(iItem,LVIS_SELECTED,LVIS_SELECTED)这样的人为改变选择的函数有反应。就是说直接收客户的键盘鼠标选中的item,程序自己选中的就不管。。
希望能给出主要代码,谢谢
解决方案 »
- DialogBox如何响应按键消息
- 用URLDownloadToFile下载文件怎么用DeleteUrlCacheEntry清除缓存
- 在windows mobile下开发一个简单的软件,实现将固定的内容发送到局域网内的一台打印服务器上
- 接口及其实现
- 怎样获得邮箱地址的服务器IP地址?(救急)
- 无效页面错误与通用保护错误有什么区别?
- vector<sometype,allocator>第二个参数是怎么个用法呢?求解答
- 如何关闭由SetTimer()设定定时器??
- Windows启动后总是先启动‘我的电脑’的C:盘,请各位帮忙看一下?
- 请问哪里有 H.263 的源码下载?
- 值得研究的问题(大家过来看——都有分)
- 有关图形文件打开
set a flag before you call SetItemState, reset the flag after the call. So you know if the item state is changed by your program.
int nselcount=ListView_GetSelectedCount(hwndListView);
int nitemcount=ListView_GetItemCount(hwndListView);
for(int i=nitemcount-1;i>=0;i--)
{
if(ListView_GetItemState(hwndListView,i,LVIS_SELECTED))
{
}
}
还有,这个消息要双击才有效,单击没用。
OnLvnItemActivate对键盘没反应