怎么我取的坐标不对啊? 分数不是问题

cdsy_go 2003-01-11 02:42:22
Private Sub ListView1_DblClick()
Dim dpoint As pointapi
Dim litem As ListItem
Dim x As Single
Dim y As Single

GetCursorPos dpoint
x = dpoint.x - ScaleX(Me.Left + ListView1.Left, vbTwips, vbPixels)
y = dpoint.y - ScaleY(Me.Top + ListView1.Top, vbTwips, vbPixels)
On Error Resume Next
Set litem = ListView1.HitTest(ScaleX(x, vbPixels, vbTwips), ScaleY(y, vbPixels, vbTwips))
If litem Is Nothing Then Exit Sub
If ListView1.View = lvwIcon Or ListView1.View = lvwSmallIcon Then
litem.Selected = True
msg = litem.Text & vbCrLf
For i = 1 To litem.ListSubItems(i).Text & vbCrLf
msg = msg & " " & litem.ListSubItems(i).Text & vbCrLf
Next
MsgBox msg
End If
End Sub
===========================================
怎么他没有MSGBOX啊,我都晕了
X,Y根本就不对
...全文
48 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cdsy_go 2003-01-12
  • 打赏
  • 举报
回复
真的吗,我再试一下,
pasl 2003-01-11
  • 打赏
  • 举报
回复
GetCursorPos PA
ScreenToClient TreeView.hWnd, PA
With PA
.X = .X * Screen.TwipsPerPixelX '- TreeView.Left
.Y = .Y * Screen.TwipsPerPixelY '- TreeView.Top
End With

Set TmpNode = TreeView.HitTest(PA.X, PA.Y)
If TmpNode Is Nothing Then Exit Sub
If TmpNode.Tag <> NodeType_Data Then Exit Sub
我用这种方法成功了!
zyl910 2003-01-11
  • 打赏
  • 举报
回复
有必要这么复杂吗


Private Sub ListView1_DblClick()
Dim litem As ListItem

Set litem = ListView1.SelectedItem
If litem Is Nothing Then Exit Sub
If ListView1.View = lvwIcon Or ListView1.View = lvwSmallIcon Then
litem.Selected = True
msg = litem.Text & vbCrLf
For i = 1 To litem.ListSubItems(i).Text & vbCrLf
msg = msg & " " & litem.ListSubItems(i).Text & vbCrLf
Next
MsgBox msg
End If
End Sub
suntt 2003-01-11
  • 打赏
  • 举报
回复
为负值??呵呵,我怎么没发现,再调调
cdsy_go 2003-01-11
  • 打赏
  • 举报
回复
但是也不对啊,我刚刚将FORM设为没有边,还是不对,
我发现X是一个负的值,有的时候,

我就是要我双击listview中的一个listitem的时候,可以弹出一个MSGBOX,
显示我双击的是哪个东东,
但是我现在取的X,Y不对,
我的是WIN2000系统,
cdsy_go 2003-01-11
  • 打赏
  • 举报
回复
对我,我就是没有得到LISTITEM对象,因为我的坐标不对,

好象也是没有加标题栏,但是我要怎么加啊,不知道啊,麻烦你告诉我好吗??
XLYT 2003-01-11
  • 打赏
  • 举报
回复
我不知道你究竟想做什么。没有MSGBOX是因为HITTEST没有得到listitem对象。
iloveyoustt 2003-01-11
  • 打赏
  • 举报
回复
好像忘把标题栏的高度加上了
iloveyoustt 2003-01-11
  • 打赏
  • 举报
回复
好像没错
cdsy_go 2003-01-11
  • 打赏
  • 举报
回复
我忘了,
Type pointapi
x As Long
y As Long
End Type
Public Declare Function GetCursorPos Lib "user32" (ippoint As pointapi) As Long


7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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