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

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根本就不对
...全文
14 点赞 收藏 10
写回复
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


回复
发动态
发帖子
VB基础类
创建于2007-09-28

7452

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告