list control控件中遇到的问题?万分感激!!! list control控件以report的形式来输出数据,现在我输入了两行数据,我想在鼠标“双击”其中一行数据的时候,显示例如一个对话框之类的信息,不知道该响应list control的哪个消息处理函数? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk) WM_LBUTTONDBCLICK消息另在初始化的时候要加上theCtrl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT) NM_DBLCLKvoid CSearchDlg::OnDblclkListPic(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here *pResult = 0; int i; CString str; i=m_lst.GetSelectionMark(); str=m_lst.GetItemText(i,0); if(str=="") return; void CUuDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) { // TODO: Add your control notification handler code here CPoint pt; ::GetCursorPos(&pt); m_ListCtrl.ScreenToClient(&pt); LVHITTESTINFO lvinfo; lvinfo.pt = pt; lvinfo.flags = LVHT_ABOVE; int nItem = m_ListCtrl.SubItemHitTest(&lvinfo); if(nItem != -1) { CString strtemp; strtemp.Format"双击了第%d行", lvinfo.iItem); AfxMessageBox(strtemp); } *pResult = 0;} 楼上的几位的方法都没有效果。不知道是不是还需要什么判定条件?我映射NM_CLICK时,单击一下鼠标就可以出现消息框,但是映射NM_DBLCLK却没有效果?void CMyDlg::OnDblclkMy(NMHDR* pNMHDR, LRESULT* pResult) { MessageBox("消息!"); *pResult = 0;} void CYourDlg::OnDblclkList1(NMHDR *pNMHDR, LRESULT *pResult){ // TODO: 在此添加控件通知处理程序代码m_studyDate int nItem=m_listCtrl.GetNextItem(-1, LVNI_SELECTED); if(nItem>=0) { } *pResult = 0;} void CYourDlg::OnDblclkList1(NMHDR *pNMHDR, LRESULT *pResult){ // TODO: 在此添加控件通知处理程序代码m_studyDate int nItem=m_listCtrl.GetNextItem(-1, LVNI_SELECTED); if(nItem>=0) { CString selItem; selItem.Format("你选取了%d 行!",nItem); AfxMessageBox(selItem); } *pResult = 0;} 谢谢大家,我单独作了一个程序测试了一下,结果正确,可是放到我的程序中就没有响应了。我的list control控件是作为tab control控件的一个页面出现的,可能有什么冲突吧,具体的我也不知道了,, 找到问题了,我的list control 控件类把NM_DBCLK给屏蔽了,谢谢!! 请高手帮帮忙 中国历代首都首都列表 我的断点和实际代码不一致怎么办 vs.net界面风格问题 围棋软件的算法是如何的,比如手谈等,哪位启发小弟一下? 求高手急救!怎样打印formview中的flexgrid数据? 已知一个文件句柄,怎么取得这个文件句柄所打开的文件名? 进行过磁盘编程的请进 请过来看看,这样是否会有问题? 如何编一个能得知系统是否安装了新硬件的程序??? 透明的对话框,显示CStatic控件有点问题 CFile 的Read问题
另在初始化的时候要加上theCtrl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)
{
// TODO: Add your control notification handler code here
*pResult = 0;
int i;
CString str;
i=m_lst.GetSelectionMark();
str=m_lst.GetItemText(i,0);
if(str=="")
return;
{
// TODO: Add your control notification handler code here
CPoint pt;
::GetCursorPos(&pt);
m_ListCtrl.ScreenToClient(&pt);
LVHITTESTINFO lvinfo;
lvinfo.pt = pt;
lvinfo.flags = LVHT_ABOVE;
int nItem = m_ListCtrl.SubItemHitTest(&lvinfo);
if(nItem != -1)
{
CString strtemp;
strtemp.Format"双击了第%d行", lvinfo.iItem);
AfxMessageBox(strtemp);
} *pResult = 0;
}
我映射NM_CLICK时,单击一下鼠标就可以出现消息框,但是映射NM_DBLCLK却没有效果?void CMyDlg::OnDblclkMy(NMHDR* pNMHDR, LRESULT* pResult)
{
MessageBox("消息!");
*pResult = 0;
}
{
// TODO: 在此添加控件通知处理程序代码m_studyDate
int nItem=m_listCtrl.GetNextItem(-1, LVNI_SELECTED);
if(nItem>=0)
{ }
*pResult = 0;
}
{
// TODO: 在此添加控件通知处理程序代码m_studyDate
int nItem=m_listCtrl.GetNextItem(-1, LVNI_SELECTED);
if(nItem>=0)
{
CString selItem;
selItem.Format("你选取了%d 行!",nItem);
AfxMessageBox(selItem);
}
*pResult = 0;
}
我的list control控件是作为tab control控件的一个页面出现的,可能有什么冲突吧,具体的我也不知道了,,