ListCtrl列表控件中NM_CLICK消息的发送和处理一例

//NM_CLICK消息的作用是模拟选中某一行(一个Item),但其消息处理函数只 //能获得被模拟选中的行号,要在界面中高亮选中行需要另加代码,可参考下面 //的代码 //发送消息,只能在同一进程中发送 NMITEMACTIVATE data; //构建消息处理函数所需参数 ZeroMemory(&data, sizeof(data)); data.hdr.code = NM_CLICK; data.hdr.hwndFrom = ::GetDlgItem(this->GetSafeHwnd(),IDC_LIST_STU); data.hdr.idFrom = IDC_LIST_STU; data.iItem = m_sNextDel; ::SendMessage(this->GetSafeHwnd(),WM_NOTIFY,(WPARAM)IDC_LIST_STU,(LPARAM)&data);//发送消息 m_listCtrl.SetItemState//高亮显示模拟选中行(m_sNextDel,LVIS_SELECTED,LVIS_SELECTED); m_listCtrl.SetFocus(); m_listCtrl.Invalidate(); //消息处理函数 LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); // 获得选中行行号 *pResult = 0; int nItem = -1; nItem = ((NM_LISTVIEW*)pNMHDR)->iItem;

你可能感兴趣的:(list,ListView)