Thema Datum  Von Nutzer Rating
Antwort
Rot Listbox API Sendmessage - Eintrag finden
18.06.2006 17:39:39 Manfred Trapp
NotSolved
19.06.2006 20:24:12 Manfred Trapp
NotSolved

Ansicht des Beitrags:
Von:
Manfred Trapp
Datum:
18.06.2006 17:39:39
Views:
6092
Rating: Antwort:
  Ja
Thema:
Listbox API Sendmessage - Eintrag finden
Hallo Leute!
Ich habe Listbox-Einträge mit hilfe eines API-Aufrufes zu finden (wie mehrfahc im Netz gezeigt.
Leider liefert der Sendmessage-Aufruf nichts zurück.

Folgendes habe ich ausprobiert:
Userform1 in UF1 umbenannt.

Folgender Code steht im Modul1:

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetFocus Lib "user32" () As Long
Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Declare Function FindWindow Lib "user32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Const LB_FINDSTRING = &H18F
Const LB_FINDSTRINGEXACT = &H1A2

Dim LBhWnd As Long, ret As Long
Dim PhWnd As Long, UFhWnd As Long

Sub Init()
UF1.Show vbModeless
UF1.ListBox1.SetFocus
LBhWnd = GetFocus
PhWnd = GetParent(LBhWnd)
UFhWnd = FindWindow(vbNullString, "UserForm1")

UF1.ListBox1.AddItem "aa"
UF1.ListBox1.AddItem "ab"
UF1.ListBox1.AddItem "ac"
UF1.ListBox1.AddItem "ad"


ret = SendMessage(LBhWnd, LB_FINDSTRING, -1, ByVal CStr("ab"))

If ret <> 0 Then
MsgBox "Text gefunden! Eintrag Nr " & ret
End If
end sub

Hat jemand eine Idee, worann es liegen kann?
Mit LB_FINDSTRING ist eine Ähnlichkeitssuche eingestellt.
Darauf kommt es mir letztendlich an, die zu suchenden Werte sich oft nicht enthalten.

Vielen Dank für die Mühe!!

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Listbox API Sendmessage - Eintrag finden
18.06.2006 17:39:39 Manfred Trapp
NotSolved
19.06.2006 20:24:12 Manfred Trapp
NotSolved