CListCtrl 单击事件

duduchao 2008-04-05 10:09:23
数据库表大概是这样

id 时间点 事件
1 1s 单击左键
2 2s 单击右键
3 7s 单击左键
4 11s 单击右键
5 15s 单击右键

想要用CListCtrl完成以下显示

时间段 事件
10s 单击左键 单击右键 单击左键
20s 单击右键 单击右键

现在的问题是如何获取“单击右键”的单击事件,就是说我想在“单击右键”这几个字上点击一下,并获取到id等信息,实在没有思路,大家帮着想想办法,我很菜,请说清楚点,谢谢!

...全文
333 6 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
guobin190 2010-08-17
  • 打赏
  • 举报
回复
登陆后怎么也看不到回复啊
iu_81 2008-04-05
  • 打赏
  • 举报
回复
设置clistctrl的属性不是fullselect,单击“单击右键”时,取到这个值之后,去后数据库比较,然后把相应的东西都显示出来即可
andywiliang 2008-04-05
  • 打赏
  • 举报
回复
帮顶


请高手坐阵本群管理员
C C++ C# JAVA编程交流群:11713348
hityct1 2008-04-05
  • 打赏
  • 举报
回复
个人认为CListCtrl无法满足你的需要。mark
星羽 2008-04-05
  • 打赏
  • 举报
回复

使用 CListCtrl 的 SubItemHitTest

添加listctrl控件的NM_CLICK消息相应函数
void CTest6Dlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// 方法一:
/*
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );

m_list.ScreenToClient(&point);

LVHITTESTINFO lvinfo;
lvinfo.pt = point;
lvinfo.flags = LVHT_ABOVE;

int nItem = m_list.SubItemHitTest(&lvinfo);
if(nItem != -1)
{
CString strtemp;
strtemp.Format("单击的是第%d行第%d列", lvinfo.iItem, lvinfo.iSubItem);
AfxMessageBox(strtemp);
}
*/

// 方法二:
/*
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
if(pNMListView->iItem != -1)
{
CString strtemp;
strtemp.Format("单击的是第%d行第%d列",
pNMListView->iItem, pNMListView->iSubItem);
AfxMessageBox(strtemp);
}
*/
*pResult = 0;
}


具体自己google资料http://hi.baidu.com/jackywdx/blog/item/715ade312150eaac5edf0ed1.html?


duduchao 2008-04-05
  • 打赏
  • 举报
回复
CListCtrl不能满足这个要求的话,有可以替代的吗?
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-04-05 10:09
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下