关于CListCtrl消息处理的问题

法尔我给他 2009-08-10 09:09:15
由一个dialog,其中有一个Listctrl,
dialog中有个OnNMDblclkListCtrl(NMHDR *pNMHDR, LRESULT *pResult)
来判断ListCtrl中的复选框选中状态的函数
在Listctrl中,我添加一个OnLButtonDown(UINT nFlags, CPoint point)
来添加Edit的函数

我发现,在执行的时候只执行后面的OnLButtonDown(UINT nFlags, CPoint point)函数,不执行前一个,
请问该如何处理!谢谢!
...全文
108 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
法尔我给他 2009-08-15
  • 打赏
  • 举报
回复
已经好了,谢谢各位大大的关心!
dengxuxing 2009-08-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wwwcs59 的回复:]
可能是我没说明白,我处理的是同一个控件的同一个消息,
只不过 在CListCtrl的派生类中 处理鼠标双击 的作用是向CListCtrl中添加一个临时的CEdit,是其可编辑
,在Dialog中 处理鼠标双击,是用来更改复选框状态,和一些其他东西

这两个函数有点冲突,不能同时起作用,我也不会把两个函数写在一起,想看看有没有其他的方法,能解决这样的问题,谢谢!
[/Quote]

在Dialog中 处理鼠标双击,是用来更改复选框状态,和一些其他东西
你双击哪里了,不会双击在某个控件上吧,那样当然不响应了!!!

复选框
Edit控件 都在Listctrl上,如果不在同一列的话还是有办法都通过双击来处理的,就在Listctrl的OnLButtonDown(UINT nFlags, CPoint point)函数中判断你的鼠标所在的行列的不同处理相应的操作就行了.
法尔我给他 2009-08-10
  • 打赏
  • 举报
回复
可能是我没说明白,我处理的是同一个控件的同一个消息,
只不过 在CListCtrl的派生类中 处理鼠标双击 的作用是向CListCtrl中添加一个临时的CEdit,是其可编辑
,在Dialog中 处理鼠标双击,是用来更改复选框状态,和一些其他东西

这两个函数有点冲突,不能同时起作用,我也不会把两个函数写在一起,想看看有没有其他的方法,能解决这样的问题,谢谢!
雪影 2009-08-10
  • 打赏
  • 举报
回复
OnLButtonDown,估计是你响应的是对话框的单击消息,而不是控件单击的通知消息。
1.建议不要使用OnLButtonDown函数,要想响应Edit控件中的单击消息
a.在头文件中添加OnClickEdit函数的定义
b.BEGIN_MESSAGE_MAP/END_MESSAGE_MAP之间添加
ON_NOTIFY(NM_RCLICK, IDC_EDIT/*你的Edit控件ID*/, OnClickEdit)

c.实现OnClickEdit函数
void CXXDlg::OnClickEdit(NMHDR* pNMHDR, LRESULT* pResult) 
{

}

2.Listctrl控件的双击响应同上
b.BEGIN_MESSAGE_MAP/END_MESSAGE_MAP之间添加
ON_NOTIFY(NM_DBLCLK, IDC_ListCtrl/*你的Edit控件ID*/, OnNMDblclkListCtrl)
法尔我给他 2009-08-10
  • 打赏
  • 举报
回复
我在OnLButtonDown(UINT nFlags, CPoint point)中,单击双击都处理了,
所以想把处理的消息继续使用,应该这么做呀?,谢谢!
fishion 2009-08-10
  • 打赏
  • 举报
回复
有单击,就不能有双击事件,在单击事件中用两次GetTickCount来判断单击的间隔,从而确定为双击事件
法尔我给他 2009-08-10
  • 打赏
  • 举报
回复
我自己想到的方法是在OnLButtonDown(UINT nFlags, CPoint point)中,继续发送鼠标消息,可惜,不会,
sendmessage的参数和(UINT nFlags, CPoint point)这样的参数,我不会转换,
在dialog中PreTranslateMessage(MSG* pMsg)中处理消息,也是一样,不知道要怎么处理呀
那位大大给指点一下,谢谢!

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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