大哥大姐帮忙啊,小弟被这个问题缠了好久了……(等待)

hesicong 2004-02-12 02:38:45
Private Const LVM_FIRST As Long = &H1000
Private Const LVM_GETITEMCOUNT As Long = (LVM_FIRST + 4)
Private Const LVIS_SELECTED As Long = &H2
Private Const LVM_GETITEMSTATE As Long = (LVM_FIRST + 44)
'Private Const LRESULT As Long = LONG_PTR
Private Type LVITEM
mask As Long
iItem As Long
iSubItem As Long
state As Long
stateMask As Long
pszText As String
cchTextMax As Long
iImage As Long
lParam As Long
iIndent As Long
End Type
Private Const LVIF_TEXT As Long = &H1


Private Const LVM_GETITEMTEXTW As Long = (LVM_FIRST + 45)
Private Const LVM_GETITEMTEXTA As Long = (LVM_FIRST + 115)
Private Const MAX_PATH As Long = 260

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long


Private Sub Command1_Click()
Me.Show
r2= '一个syslistview32控件的句柄
r3 = SendMessage(R2, LVM_GETITEMCOUNT, 0, 0)
Dim aLVITEM As LVITEM

Cls
astr = String$(128, Chr$(0))
aLVITEM.pszText = astr
aLVITEM.cchTextMax = Len(astr)
' Get the subitem's text
SendMessage R2, LVM_GETITEMTEXTA, 1, aLVITEM
astr = Left$(aLVITEM.pszText, InStr(aLVITEM.pszText, Chr$(0)) - 1)
Debug.Print astr
End Sub

Private Sub Form_Load()
Command1_Click
End Sub

这个程序是用来得到一个syslistview32控件内容的程序,我能够成功得到列表的数量(r3),但是用sendmessage取得指定项的内容的时候那个正被操作的程序就非法操作推出了,astr为空。不知道是为什么取得列表数量(getitemcount)时没问题,后来的getitemtexta就有问题了哪?小生见识浅薄望高人指教!
...全文
98 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复

1,488

社区成员

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

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