PDA

View Full Version : Getting listbox items



Farhad.B.S
دوشنبه 13 مرداد 1382, 17:20 عصر
سلام.
چطور میشه توسط API ها آیتم های یه لیست باکس رو بیرون کشید !؟
من از این کد استفاده کردم ( چیزی بود که خود MSDN گفته بود ) ولی همینکه کد اجرا میشه یدونه از اون خطا های سیستمی میده (Send error report to Microsoft ! ) :




Private Const LB_GETTEXT = &H189
Private Const LB_FINDSTRING = &H18F
Private Const LB_GETCOUNT = &H18B
Private Const LB_GETITEMDATA = &H199
Private Const LB_GETTEXTLEN = &H18A
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Command1_Click()
Dim cItems As Integer
Dim i As Integer
Dim sBuf As String
Dim cBuf As Long
Dim lResp As Long
Dim hControl As Long

hControl = List1.hwnd

cItems = SendMessage(hControl, LB_GETCOUNT, 0&, 0&)

For i = 0 To cItems - 1

cBuf = SendMessage(hControl, LB_GETTEXTLEN, CLng(i), vbNullString)
sBuf = String$(cBuf + 1, " ")
lResp = SendMessage(hControl, LB_GETTEXT, CLng(i), sBuf)
If lResp > 0 Then
MsgBox Left$(sBuf, lResp)
End If
Next i

End Sub

Abbas Arizi
دوشنبه 13 مرداد 1382, 17:35 عصر
توی اون SendMessage آخر قبل از sbuf یک ByVal بذارید. ببینید درست نمیشه؟
من الان کد شما رو عینا کپی کردم و با همین تغییر بدون مشکل اجراش کردم.

Farhad.B.S
دوشنبه 13 مرداد 1382, 17:48 عصر
بله حل شد ... خیلی ممنون :oops: