ListCtrl改变选中一行选择的处理
2013-03-05 18:19
337 查看
CListCtrl,CListView与LVN_ITEMCHANGED消息
若要在CListCtrl中行发生改变时得到通知,可以映射LVN_ITEMCHANGED消息。
ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, OnItemchanged)
afx_msg void OnItemchanged(NMHDR* pNMHDR,LRESULT* pResult);
// 行选择改变
void CMyListCtrl::OnItemchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
...您要进行的操作...
*pResult = 0;
}
注意,LVN_ITEMCHANGED消息的产生有以下几种可能:
1、由选中到没选中的变化;
2、由没选中到选中的变化;
3、由选中一行到选中另外一行的变化;
4、使用CListCtrl::SetItem函数更改了行;
如何检测LVN_ITEMCHANGED消息是由那一变化产生的呢?
NM_LISTVIEW结构成员变量uChanged和uNewState包含着这类信息,看如下代码:
void CRunListView::OnItemchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->uChanged == LVIF_STATE)
{
if(pNMListView->uNewState)
TRACE0("选择改变且有选中的行\r\n");
else
TRACE0("选择改变且没有选中的行\r\n");
}
else
TRACE0("行改变(CListCtrl::SetItem)\r\n");
*pResult = 0;
}
若要在CListCtrl中行发生改变时得到通知,可以映射LVN_ITEMCHANGED消息。
ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, OnItemchanged)
afx_msg void OnItemchanged(NMHDR* pNMHDR,LRESULT* pResult);
// 行选择改变
void CMyListCtrl::OnItemchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
...您要进行的操作...
*pResult = 0;
}
注意,LVN_ITEMCHANGED消息的产生有以下几种可能:
1、由选中到没选中的变化;
2、由没选中到选中的变化;
3、由选中一行到选中另外一行的变化;
4、使用CListCtrl::SetItem函数更改了行;
如何检测LVN_ITEMCHANGED消息是由那一变化产生的呢?
NM_LISTVIEW结构成员变量uChanged和uNewState包含着这类信息,看如下代码:
void CRunListView::OnItemchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->uChanged == LVIF_STATE)
{
if(pNMListView->uNewState)
TRACE0("选择改变且有选中的行\r\n");
else
TRACE0("选择改变且没有选中的行\r\n");
}
else
TRACE0("行改变(CListCtrl::SetItem)\r\n");
*pResult = 0;
}
相关文章推荐
- table里面,怎么根据checkbox选择的一行中的某个单元格的值是否为空,来判断是否该选中
- 指定改变ListCtrl中某一行的颜色
- wicket中改变TreeTable列表中选中一行的背景颜色
- winform中GridView控件在选中一行后改变选中行的背景颜色
- c# winform DataGridView单击选中一整行,只能单选,不能选择多行,只能选择一行
- GridView中点击CheckBox选中一行来改变此行的颜色
- silverlight中如何选中datagrid中一行并处理该行
- vc 中改变listctrl每一行的高度
- DataGridView 单击选中一整行,只能单选,不能选择多行,只能选择一行
- c# winform DataGridView单击选中一整行,只能单选,不能选择多行,只能选择一行
- vc 中改变ListCtrl每一行(每一个Item)的高度
- ListView选中多个item、改变背景、输入框的综合处理
- JS中处理select 的选择改变事件
- Excel中,通过 「条件格式」 实现, 下拉菜单选择某个值时,这一行的颜色改变。
- 全选 和 反选 单击一行选中 和 提交路径的改变
- ArcGIS改变选择集选中时的样式与颜色
- 【转】 改变ListCtrl中所选中行的颜色,通过NM_CUSTOMDRAW实现
- sdk改变ListCtrl某一行的字体颜色或者背景颜色
- DataGridView单击选中一整行,只能单选,不能选择多行,只能选择一行
- c# winform DataGridView单击选中一整行,只能单选,不能选择多行,只能选择一行