listctrl控件如何在NM_CLICK中判断是否有多行被选中? RT!只要能知道是否有多行被选中就行了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 选定一行:设置CListCtrl的Show selection always选项SetItemState (iIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED) 选中一个或多个项目时,会发送LVN_ITEMCHANGED消息,可以使用GetSelectedCount()方法得到被选定的项的数目。点击列头的消息响应:ON_NOTIFY(HDN_ITEMCLICKW, 0, ResponseFunc)消息,需要自己添加 或者:ON_NOTIFY(LVN_COLUMNCLICK, ID_yourCtrl, ResponseFunc)//向导添加前者后响应,后者先响应响应函数:ResponseFunc(NMHDR *pNMHDR, LRESULT *pResult) 双击CListCtrl中的ITEM的消息是及消息函数:ON_NOTIFY(NM_DBLCLK, ID_yourCtrl, ResponseFunc) 单击ITEM的消息响应:ON_NOTIFY(NM_CLICK, ID_yourCtrl, ResponseFunc)ResponseFunc(NMHDR *pNMHDR, LRESULT *pResult) HDN_ITEMCLICK 就是Header control Notify message for mouse left click on the Header control!而HDN_ITEMCLICK是当List View中存在一个Header Contrl时,Header Ctrl通知父窗口List View的!CListCtrl中的Item被选中触发LBN_SELCHANGE(通过WM_COMMAND)消息!删除CListCtrl中选定的项:POSITION pos;int nIndex;for(; pos= GetFirstSelectedItemPosition();){nIndex = GetNextSelectedItem(pos);DeleteItem(nIndex);} 我想实现的目的是:Button1初始化灰掉若只选中一行,则Button1启用若选中多行,则Button1灰掉按照你的第一种方法,在listctrl的NM_CLICK中判断GetSelectedCount()好像不起作用啊 上面说的是LVN_ITEMCHANGED消息,也不行? POSITION pos;int nIndex;for(; pos= GetFirstSelectedItemPosition();){nIndex = GetNextSelectedItem(pos);DeleteItem(nIndex);}这个方法真好 感谢 但是删除一行后你的迭代会变无效的,因为删除后面的行都往上移了,但是pos还是原来的值,肯定有问题的 关于窗口的淡入效果 winsocket 客户端处理接收到的数据时是否能影响到服务器 一个简单的问题! IE7的几个问题 <<MFC Windows程序设计 第2版>>转让 请问原文修改一个字节的内容,我错在那里了 急求一个路径选择对话框 带有新建文件夹功能那种 大家帮帮忙啊~ CRichEditCtrl为什么不能输出中文?? 菜鸟问题 怎么理解? 求书! 求助:图像透明色(多值)
设置CListCtrl的Show selection always选项
SetItemState (iIndex, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED) 选中一个或多个项目时,会发送LVN_ITEMCHANGED消息,可以使用
GetSelectedCount()方法得到被选定的项的数目。点击列头的消息响应:
ON_NOTIFY(HDN_ITEMCLICKW, 0, ResponseFunc)
消息,需要自己添加
或者:
ON_NOTIFY(LVN_COLUMNCLICK, ID_yourCtrl, ResponseFunc)//向导添加
前者后响应,后者先响应响应函数:
ResponseFunc(NMHDR *pNMHDR, LRESULT *pResult) 双击CListCtrl中的ITEM的消息是及消息函数:
ON_NOTIFY(NM_DBLCLK, ID_yourCtrl, ResponseFunc) 单击ITEM的消息响应:
ON_NOTIFY(NM_CLICK, ID_yourCtrl, ResponseFunc)
ResponseFunc(NMHDR *pNMHDR, LRESULT *pResult)
HDN_ITEMCLICK 就是Header control Notify message for mouse left click on the Header control!
而HDN_ITEMCLICK是当List View中存在一个Header Contrl时,Header Ctrl通知父窗口List View的!CListCtrl中的Item被选中触发LBN_SELCHANGE(通过WM_COMMAND)消息!删除CListCtrl中选定的项:
POSITION pos;
int nIndex;for(; pos= GetFirstSelectedItemPosition();)
{
nIndex = GetNextSelectedItem(pos);
DeleteItem(nIndex);
}
Button1初始化灰掉
若只选中一行,则Button1启用
若选中多行,则Button1灰掉按照你的第一种方法,在listctrl的NM_CLICK中判断GetSelectedCount()好像不起作用啊
int nIndex;for(; pos= GetFirstSelectedItemPosition();)
{
nIndex = GetNextSelectedItem(pos);
DeleteItem(nIndex);
}
这个方法真好 感谢
但是删除一行后你的迭代会变无效的,因为删除后面的行都往上移了,但是pos还是原来的值,肯定有问题的