如何实现双击CListCtrl控件,实现某条记录的详细信息?

crazzycat 2002-12-14 11:40:49
我在Dialog中有个listctrl控件,在显示完记录后,如何实现双击某条记录在调用出另个个dialog,显示其详细记录?我不知道应该调用listctrl控件的哪个消息????
...全文
67 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
andy_lau 2002-12-16
  • 打赏
  • 举报
回复
/****************************************
判断有效性并提交到数据库中,分两种情况
1。添加新的纪录到数据库中
2。修改记录倒数据库中
****************************************/
void CAddRecord::OnOK()
{

UpdateData();
if(m_strName==_T("")||m_strCity==_T("")||m_strLeibie==_T(""))
{
AfxMessageBox(" 以 *** 结尾的字段不能为空 ");
return;
}

if(m_strLeibie!="同学"&&m_strLeibie!="网友"&&m_strLeibie!="其它"&&m_strLeibie!="朋友")
{
AfxMessageBox(" 选择类别不正确,请选者正确\"所属类别\" !");
return;
}

if(m_strEmail!=_T("")&&m_strEmail.Find('@')==-1)
{
AfxMessageBox("电子邮件字段输入格式不正确.");
return;
}


if(!m_bUpdateRecord)//插入新的纪录
{
if(!InsertRecord(m_strName,m_strNameExtra,m_strLeibie,m_iQQ,
m_strTelep,m_strMobile,m_strEmail,m_strAdress,
m_strAdept,m_strCity,m_strRemark))
{
m_bAdimitDatabase=FALSE;
AfxMessageBox(" 添加记录失败! ");
}

}
else
{
if(!UpdateDatabase(m_strName,m_strNameExtra,m_strLeibie,m_iQQ,m_strTelep,m_strMobile,m_strEmail,m_strAdress,m_strAdept,m_strCity,m_strRemark,m_strOldName))
{
AfxMessageBox(" 更新数据库失败 !");
return;
}
}


CDialog::OnOK();
}
andy_lau 2002-12-16
  • 打赏
  • 举报
回复
靠,楼上的不知道不要瞎说
响应nm_dblclk,然后...
/***********************************************
功能:
响应在视图中双击引起的操作 ,提取记录到新的对话框中
并在其中修改相应的数据项信息,然后再存入数据库并
更新项对应的视图重的数据项
历史纪录:andy-21/10/2002
*************************************************/
void CEditResult::OnDblclkListreport(NMHDR* pNMHDR, LRESULT* pResult)
{

OnEdit();
*pResult = 0;
}

/******************************************
对现有的记录进行编辑,并将数据更新到数据库中
******************************************/
void CEditResult::OnEdit()
{
//监测dao数据库对象的有效性,并在纪录集对象打开时关闭该记录集
if(!m_pDatabase->IsOpen())
return;
if(!m_pRecordset)
return;
if(m_pRecordset->IsOpen())
m_pRecordset->Close();


CString strTempName=_T("");
CString strTempNameExtra=_T("");
CString strTempLeibie=_T("");
int iQQ=0;
CString strTempTelep=_T("");
CString strTempMobile=_T("");
CString strTempEmail=_T("");
CString strTempAdress=_T("");
CString strTempAdept=_T("");
CString strTempCity=_T("");
CString strTempRemark=_T("");

m_selectName=_T("");
GetContentinList();
if(m_selectName==_T(""))
return;
else
{ //修改之前的数据
strTempName=m_strName;
strTempNameExtra=m_strNameExtra;
strTempLeibie=m_strLeibie;
iQQ=m_iQQ;
strTempTelep=m_strTelep;
strTempMobile=m_strMobile;
strTempEmail=m_strEmail;
strTempAdress=m_strAdress;
strTempAdept=m_strAdept;
strTempCity=m_strCity;
strTempRemark=m_strRemark;
}

CAddRecord dlg;
dlg.m_strOldName=m_strName;
dlg.m_strName=m_strName;
dlg.m_strNameExtra=m_strNameExtra;
dlg.m_strLeibie=m_strLeibie;
dlg.m_strAdept=m_strAdept;
dlg.m_strAdress=m_strAdress;
dlg.m_strCity=m_strCity;
dlg.m_iQQ=m_iQQ;
dlg.m_strEmail=m_strEmail;
dlg.m_strMobile=m_strMobile;
dlg.m_strRemark=m_strRemark;
dlg.m_strTelep=m_strTelep;
dlg.m_bUpdateRecord=TRUE;

if(dlg.DoModal()!=IDOK)
return;
//修改过之后数据
m_selectName=dlg.m_strName;
m_strName=dlg.m_strName;
m_strNameExtra=dlg.m_strNameExtra;
m_strLeibie=dlg.m_strLeibie;
m_strAdept=dlg.m_strAdept;
m_strAdress=dlg.m_strAdress;
m_strCity=dlg.m_strCity;
m_iQQ=dlg.m_iQQ;
m_strEmail=dlg.m_strEmail;
m_strMobile=dlg.m_strMobile;
m_strRemark=dlg.m_strRemark;
m_strTelep=dlg.m_strTelep;


//////////////////////////////////////////////////////
//改变视图中相应的函数项
CString strQQ;
m_listreport.SetItemText(m_iselectindex,0,m_strName);
m_listreport.SetItemText(m_iselectindex,1,m_strNameExtra);
m_listreport.SetItemText(m_iselectindex,2,m_strLeibie);
m_listreport.SetItemText(m_iselectindex,3,strQQ);
m_listreport.SetItemText(m_iselectindex,4,m_strTelep);
m_listreport.SetItemText(m_iselectindex,5,m_strMobile);
m_listreport.SetItemText(m_iselectindex,6,m_strEmail);
m_listreport.SetItemText(m_iselectindex,7,m_strAdress);
m_listreport.SetItemText(m_iselectindex,8,m_strAdept);
m_listreport.SetItemText(m_iselectindex,9,m_strCity);
m_listreport.SetItemText(m_iselectindex,10,m_strRemark);

}
crazzycat 2002-12-15
  • 打赏
  • 举报
回复
没有你说的LBN_DBLCLK事件?!
只有LVN.... NM..... HDN...等message!
crazzycat 2002-12-15
  • 打赏
  • 举报
回复
有这样的代码吗?
jason_sun22 2002-12-15
  • 打赏
  • 举报
回复
菜单View->ClassWizard->MessageMap选项卡,

在Object IDs中选择你的ListCtrl的ID,

在Messages中选择NM_DBLCLK,然后AddFuntion->OK
luixui 2002-12-15
  • 打赏
  • 举报
回复
ON_LBUTTONDBCLICK
crazzycat 2002-12-15
  • 打赏
  • 举报
回复
这个控件没有这个消息!!!!
differ1 2002-12-14
  • 打赏
  • 举报
回复
双击事件里
LBN_DBLCLK
用GetItemPosition就可以知道选择的是哪一个

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧