请教ListView怎样识别在Column上按下了鼠标

wangh2122 2004-05-06 12:25:50
在Column上按鼠标键不会发生MouseDown等事件,而我想在Column上按右键弹出一个菜单,应该怎么做呢?
...全文
49 6 点赞 打赏 收藏 举报
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
supergreenbean 2004-05-07
呵呵,说的没错,用子类处理很轻松就解决了

1.用LVM_GETHEADER获得ListView中ColumnHeader的句柄
2.用SetWindowLong子类处理ColumnHeader
3.拦截WM_RBUTTONUP之类的消息,然后弹出你希望的菜单
  • 打赏
  • 举报
回复
wangh2122 2004-05-07
果然还是必须要用这个才行,那么再请问下

1.用LVM_GETHEADER获得ListView中ColumnHeader的句柄

这一步应该怎么做呢?可以详细讲解一下吗?
  • 打赏
  • 举报
回复
supergreenbean 2004-05-07
用hHeader=SendMessage(ListView1.hWnd,LVM_GETHEADER,0&,ByVal 0&)
  • 打赏
  • 举报
回复
wangh2122 2004-05-06
不行,ColumnClick是点击Column时的事件,单击右键是不会触发的
  • 打赏
  • 举报
回复
tztz520 2004-05-06
它是触发这个事件

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
MsgBox "ok"
End Sub
  • 打赏
  • 举报
回复
daisy8675 2004-05-06
Private Sub lvwShippers_MouseDown(Button As Integer, Shift As Integer, X As Single, y As Single)

' 按下滑鼠右鍵。
If Button = 2 Then
PopupMenu mnuEdit
End If

End Sub

在column上是可以抓的。但是直接抓是抓不到,好象用子類可以處理。要試下去
  • 打赏
  • 举报
回复
相关推荐
发帖
控件
加入

1430

社区成员

VB 控件
申请成为版主
帖子事件
创建了帖子
2004-05-06 12:25
社区公告
暂无公告