ListBoxMessageEnum: Unterschied zwischen den Versionen

Aus API-Wiki
Wechseln zu: Navigation, Suche
K (vb)
Zeile 3: Zeile 3:
  
 
= Deklaration =
 
= Deklaration =
<vb>Const LB_BASE As Long = &H180
+
<<syntaxhighlight lang="vb">>Const LB_BASE As Long = &H180
  
 
Enum ListBoxMessageEnum
 
Enum ListBoxMessageEnum
Zeile 47: Zeile 47:
 
     LB_ITEMFROMPOINT = LB_BASE + &H29
 
     LB_ITEMFROMPOINT = LB_BASE + &H29
 
     LB_MSGMAX = LB_BASE + &H30
 
     LB_MSGMAX = LB_BASE + &H30
End Enum</vb>
+
End Enum</<syntaxhighlight lang="vb">>
  
 
Die Nachrichten können mit [[SendMessage]] oder [[PostMessage]] versandt werden.
 
Die Nachrichten können mit [[SendMessage]] oder [[PostMessage]] versandt werden.
Zeile 57: Zeile 57:
  
 
Mit dieser Nachricht wird ein neues Element in die Liste eingefügt. Das neue Element wird an das Ende der Liste gestellt.<BR>
 
Mit dieser Nachricht wird ein neues Element in die Liste eingefügt. Das neue Element wird an das Ende der Liste gestellt.<BR>
wParam wird nicht benötigt und muß den Wert 0 haben. lParam ist ein Zeiger auf das einzufügende Element, welches mit einem [[vbNullChar|Nullbyte]] abgeschlossen werden muß.  
+
wParam wird nicht benötigt und muß den Wert 0 haben. lParam ist ein Zeiger auf das einzufügende Element, welches mit einem [[<syntaxhighlight lang="vb">NullChar|Nullbyte]] abgeschlossen werden muß.  
  
 
Ist bei einer Listbox das Style-Flag [[ListBoxStyleEnum#LBS_SORT|LBS_SORT]], aber nicht das Style-Flag [[ListBoxStyleEnum#LBS_HAS_STRINGS|LBS_HASSTRINGS]] gesetzt, empfängt der Eigentümer der Liste mindestens einmal die Nachricht [[WindowMessageEnum#WM_COMPAREITEM|WM_COMPAREITEM]], um die korrekte Sortierreihenfolge zu gewährleisten.
 
Ist bei einer Listbox das Style-Flag [[ListBoxStyleEnum#LBS_SORT|LBS_SORT]], aber nicht das Style-Flag [[ListBoxStyleEnum#LBS_HAS_STRINGS|LBS_HASSTRINGS]] gesetzt, empfängt der Eigentümer der Liste mindestens einmal die Nachricht [[WindowMessageEnum#WM_COMPAREITEM|WM_COMPAREITEM]], um die korrekte Sortierreihenfolge zu gewährleisten.
Zeile 64: Zeile 64:
  
 
===== Beispiel =====
 
===== Beispiel =====
<vb>Dim lngResult As Long
+
<<syntaxhighlight lang="vb">>Dim lngResult As Long
 
Dim strText As String
 
Dim strText As String
  
Zeile 77: Zeile 77:
 
                     ListBoxMessageEnum.LB_ADDSTRING, _
 
                     ListBoxMessageEnum.LB_ADDSTRING, _
 
                     0, strText)
 
                     0, strText)
End If</vb>
+
End If</<syntaxhighlight lang="vb">>
  
 
==== LB_DELETESTRING ====
 
==== LB_DELETESTRING ====
Zeile 90: Zeile 90:
  
 
===== Beispiel =====
 
===== Beispiel =====
<vb>Dim lngResult As Long
+
<<syntaxhighlight lang="vb">>Dim lngResult As Long
  
 
lngResult = SendMessageLong(List1.hWnd, _
 
lngResult = SendMessageLong(List1.hWnd, _
Zeile 102: Zeile 102:
 
                 lngResult - 1, ByVal 0&)
 
                 lngResult - 1, ByVal 0&)
 
     End If
 
     End If
End If</vb>
+
End If</<syntaxhighlight lang="vb">>
  
 
==== LB_GETCOUNT ====
 
==== LB_GETCOUNT ====
Zeile 113: Zeile 113:
  
 
===== Beispiel =====
 
===== Beispiel =====
<vb>Debug.Print SendMessageLong(List1.hWnd, _
+
<<syntaxhighlight lang="vb">>Debug.Print SendMessageLong(List1.hWnd, _
 
                 ListBoxMessageEnum.LB_GETCOUNT, _
 
                 ListBoxMessageEnum.LB_GETCOUNT, _
                 0, ByVal &H0)</vb>
+
                 0, ByVal &H0)</<syntaxhighlight lang="vb">>
  
 
==== LB_INSERTSTRING ====
 
==== LB_INSERTSTRING ====
Zeile 121: Zeile 121:
  
 
Diese Nachricht stellt das Element an die in benannte Position.<BR>
 
Diese Nachricht stellt das Element an die in benannte Position.<BR>
wParam enthält die Position, an der das Element eingetragen werden soll. lParam ist ein Zeiger auf das einzufügende Element, welches mit einem [[vbNullChar|Nullbyte]] abgeschlossen werden muß.
+
wParam enthält die Position, an der das Element eingetragen werden soll. lParam ist ein Zeiger auf das einzufügende Element, welches mit einem [[<syntaxhighlight lang="vb">NullChar|Nullbyte]] abgeschlossen werden muß.
  
 
Im Gegensatz zu [[ListBoxMessageEnum#LB_ADDSTRING|LB_ADDSTRING]] wird bei Listen, bei denen das Style-Flag [[ListBoxStyleEnum#LBS_SORT|LBS_SORT]] gesetzt ist, die Sortierung ignoriert und das Element an die benannte Position gesetzt.
 
Im Gegensatz zu [[ListBoxMessageEnum#LB_ADDSTRING|LB_ADDSTRING]] wird bei Listen, bei denen das Style-Flag [[ListBoxStyleEnum#LBS_SORT|LBS_SORT]] gesetzt ist, die Sortierung ignoriert und das Element an die benannte Position gesetzt.
Zeile 128: Zeile 128:
  
 
===== Beispiel =====
 
===== Beispiel =====
<vb>Dim lngResult As Long
+
<<syntaxhighlight lang="vb">>Dim lngResult As Long
 
Dim strText As String
 
Dim strText As String
  
Zeile 141: Zeile 141:
 
                     ListBoxMessageEnum.LB_INSERTSTRING, _
 
                     ListBoxMessageEnum.LB_INSERTSTRING, _
 
                     0, strText)
 
                     0, strText)
End If</vb>
+
End If</<syntaxhighlight lang="vb">>
  
 
==== LB_RESETCONTENT ====
 
==== LB_RESETCONTENT ====
Zeile 152: Zeile 152:
  
 
===== Beispiel =====
 
===== Beispiel =====
<vb>Call SendMessageLong(List1.hWnd, _
+
<<syntaxhighlight lang="vb">>Call SendMessageLong(List1.hWnd, _
 
                 ListBoxMessageEnum.LB_RESETCONTENT, _
 
                 ListBoxMessageEnum.LB_RESETCONTENT, _
                 0, ByVal &H0)</vb>
+
                 0, ByVal &H0)</<syntaxhighlight lang="vb">>
  
 
= Beispiele =
 
= Beispiele =

Version vom 5. November 2016, 22:10 Uhr

Die Mitglieder der Enumeration ListBoxMessageEnum sind Nachrichten, die an Listenfelder gesandt werden, um das Verhalten zu steuern und Daten zu setzen oder zu ermitteln.

Deklaration

<<syntaxhighlight lang="vb">>Const LB_BASE As Long = &H180

Enum ListBoxMessageEnum

   LB_ADDSTRING = LB_BASE + &H0
   LB_INSERTSTRING = LB_BASE + &H1
   LB_DELETESTRING = LB_BASE + &H2
   LB_SELITEMRANGEEX = LB_BASE + &H3
   LB_RESETCONTENT = LB_BASE + &H4
   LB_SETSEL = LB_BASE + &H5
   LB_SETCURSEL = LB_BASE + &H6
   LB_GETSEL = LB_BASE + &H7
   LB_GETCURSEL = LB_BASE + &H8
   LB_GETTEXT = LB_BASE + &H9
   LB_GETTEXTLEN = LB_BASE + &HA
   LB_GETCOUNT = LB_BASE + &HB
   LB_SELECTSTRING = LB_BASE + &HC
   LB_DIR = LB_BASE + &HD
   LB_GETTOPINDEX = LB_BASE + &HE
   LB_FINDSTRING = LB_BASE + &HF
   LB_GETSELCOUNT = LB_BASE + &H10
   LB_GETSELITEMS = LB_BASE + &H11
   LB_SETTABSTOPS = LB_BASE + &H12
   LB_GETHORIZONTALEXTENT = LB_BASE + &H13
   LB_SETHORIZONTALEXTENT = LB_BASE + &H14
   LB_SETCOLUMNWIDTH = LB_BASE + &H15
   LB_ADDFILE = LB_BASE + &H16
   LB_SETTOPINDEX = LB_BASE + &H17
   LB_GETITEMRECT = LB_BASE + &H18
   LB_GETITEMDATA = LB_BASE + &H19
   LB_SETITEMDATA = LB_BASE + &H1A
   LB_SELITEMRANGE = LB_BASE + &H1B
   LB_SETANCHORINDEX = LB_BASE + &H1C
   LB_GETANCHORINDEX = LB_BASE + &H1D
   LB_SETCARETINDEX = LB_BASE + &H1E
   LB_GETCARETINDEX = LB_BASE + &H1F
   LB_SETITEMHEIGHT = LB_BASE + &H20
   LB_GETITEMHEIGHT = LB_BASE + &H21
   LB_FINDSTRINGEXACT = LB_BASE + &H22&
   LB_SETLOCALE = LB_BASE + &H25
   LB_GETLOCALE = LB_BASE + &H26
   LB_SETCOUNT = LB_BASE + &H27
   LB_INITSTORAGE = LB_BASE + &H28
   LB_ITEMFROMPOINT = LB_BASE + &H29
   LB_MSGMAX = LB_BASE + &H30

End Enum</<syntaxhighlight lang="vb">>

Die Nachrichten können mit SendMessage oder PostMessage versandt werden.

Beschreibung

LB_ADDSTRING

Wert (hex/dez): &H180 = 384

Mit dieser Nachricht wird ein neues Element in die Liste eingefügt. Das neue Element wird an das Ende der Liste gestellt.
wParam wird nicht benötigt und muß den Wert 0 haben. lParam ist ein Zeiger auf das einzufügende Element, welches mit einem [[<syntaxhighlight lang="vb">NullChar|Nullbyte]] abgeschlossen werden muß.

Ist bei einer Listbox das Style-Flag LBS_SORT, aber nicht das Style-Flag LBS_HASSTRINGS gesetzt, empfängt der Eigentümer der Liste mindestens einmal die Nachricht WM_COMPAREITEM, um die korrekte Sortierreihenfolge zu gewährleisten.

Ist der Aufruf erfolgreich, wird der Index des hinzugefügten Elementes zurückgegeben. Tritt ein Fehler auf, wird LB_ERR zurückgegeben, der Fehler kann dann mit Err.LastDLLError abgefragt werden. Falls die ListBox nicht mehr genügend Speicher hat, wird LB_ERRSPACE zurückgegeben.

Beispiel

<<syntaxhighlight lang="vb">>Dim lngResult As Long Dim strText As String

lngResult = SendMessageLong(List1.hWnd, _

               ListBoxMessageEnum.LB_GETCOUNT, _
               0, ByVal 0&)

If lngResult <> ListBoxResultEnum.LB_ERR Then

   strText = "Eintrag " & CStr(lngResult + 1)
   
   lngResult = SendMessageString(List1.hWnd, _
                   ListBoxMessageEnum.LB_ADDSTRING, _
                   0, strText)

End If</<syntaxhighlight lang="vb">>

LB_DELETESTRING

Wert (hex/dez): &H182 = 386

Dise Nachricht wird an eine ListBox gesandt, um ein Element aus der Liste zu entfernen.
wParam benennt das zu entfernende Element, lParam wird nicht benötigt und muß den Wert 0 haben.

Ist das Style-Flag LBS_HASSTRINGS der ListBox gesetzt, empfängt der Eigentümer der ListBox die Nachricht WM_DELETEITEM, um das Element und zugehörige Daten zu entfernen.

Zurückgegeben wird die Anzahl der verbleibenden Elemente in der Liste. Tritt ein Fehler auf, wird LB_ERR zurückgegeben, der Fehler kann dann mit Err.LastDLLError abgefragt werden.

Beispiel

<<syntaxhighlight lang="vb">>Dim lngResult As Long

lngResult = SendMessageLong(List1.hWnd, _

               ListBoxMessageEnum.LB_GETCOUNT, _
               0, ByVal 0&)

If (lngResult <> ListBoxResultEnum.LB_ERR) Then

   If lngResult <> 0 Then
       lngResult = SendMessageLong(List1.hWnd, _
               ListBoxMessageEnum.LB_DELETESTRING, _
               lngResult - 1, ByVal 0&)
   End If

End If</<syntaxhighlight lang="vb">>

LB_GETCOUNT

Wert (hex/dez): &H18B = 395

Um die Anzahl der Einträge in einer ListBox zu ermitteln, wird diese Nachricht an die ListBox gesandt.
wParam und lParam werden nicht benötigt und müssen den Wert 0 haben.

Zurückgegeben wird die Anzahl der enthaltenen Einträge. Falls ein Fehler aufgetreten ist, wird stattdessen LB_ERR zurückgegeben, der Fehler kann dann mit Err.LastDLLError abgefragt werden.

Beispiel

<<syntaxhighlight lang="vb">>Debug.Print SendMessageLong(List1.hWnd, _

               ListBoxMessageEnum.LB_GETCOUNT, _
               0, ByVal &H0)</<syntaxhighlight lang="vb">>

LB_INSERTSTRING

Wert (hex/dez): &H181 = 385

Diese Nachricht stellt das Element an die in benannte Position.
wParam enthält die Position, an der das Element eingetragen werden soll. lParam ist ein Zeiger auf das einzufügende Element, welches mit einem [[<syntaxhighlight lang="vb">NullChar|Nullbyte]] abgeschlossen werden muß.

Im Gegensatz zu LB_ADDSTRING wird bei Listen, bei denen das Style-Flag LBS_SORT gesetzt ist, die Sortierung ignoriert und das Element an die benannte Position gesetzt.

Ist der Aufruf erfolgreich, wird der Index des hinzugefügten Elementes zurückgegeben. Tritt ein Fehler auf, wird LB_ERR zurückgegeben, der Fehler kann dann mit Err.LastDLLError abgefragt werden. Falls die ListBox nicht mehr genügend Speicher hat, wird LB_ERRSPACE zurückgegeben.

Beispiel

<<syntaxhighlight lang="vb">>Dim lngResult As Long Dim strText As String

lngResult = SendMessageLong(List1.hWnd, _

               ListBoxMessageEnum.LB_GETCOUNT, _
               0, ByVal 0&)

If lngResult <> ListBoxResultEnum.LB_ERR Then

   strText = "Eintrag " & CStr(lngResult + 1)
   
   lngResult = SendMessageString(List1.hWnd, _
                   ListBoxMessageEnum.LB_INSERTSTRING, _
                   0, strText)

End If</<syntaxhighlight lang="vb">>

LB_RESETCONTENT

Wert (hex/dez): &H184 = 388

Entfernt alle Elemente aus der Liste der Listbox.
wParam und lParam werden nicht benötigt und müssen den Wert 0 haben.

Hat die Combobox den Stil LBS_HASSTRINGS, empfängt der Eigentümer der Combobox für jedes Element die Nachricht WM_DELETEITEM.

Beispiel

<<syntaxhighlight lang="vb">>Call SendMessageLong(List1.hWnd, _

               ListBoxMessageEnum.LB_RESETCONTENT, _
               0, ByVal &H0)</<syntaxhighlight lang="vb">>

Beispiele

Weblinks