Problema del cuadro de lista del SDK
'El siguiente es código PowerBasic, puede usarlo en VB después de modificarlo.
'Dword es largo y el comienzo es una constante.
' ff_listbox.inc ************************************************* ******************
'-- FF_ListBox_ResetContent--------------------- ------------------
' Eliminar todos los elementos de un ListBox.
'
' hWndControl: Mango de control (por ejemplo, HWND_FORM1_LISTBOX1)
'----------------- - -------------------------------------------------
Sub FF_ListBox_ResetContent (ByVal hWndControl As Dword)
' Realice una verificación para asegurarse de que se trata realmente de un identificador de ventana
Si IsWindow(hWndControl) Entonces
' Establece el texto y devuelve la posición donde se agregó el texto.
Llamar a SendMessage(hWndControl, LB_RESETCONTENT, 0, 0)
Finalizar si
End Sub
'-- FF_ListBox_AddString---------------------------------- - -------
<'
' Agrega una cadena a un control ListBox
' hWndControl: Identificador de control (por ejemplo, HWND_FORM1_LISTBOX1)
' TheText: el texto real que se agregará.
' Devuelve: el índice de base cero donde se agregó el texto.
'---------------------------------- -------- ----------------------------------
Función FF_ListBox_AddString (ByVal hWndControl As Dword, _
ByVal TheText As String) As Long
' Realice una verificación para asegurarse de que esto
es en realidad un identificador de ventana
If IsWindow(hWndControl) Then
' Establece el texto y devuelve la posición donde se agregó el texto.
Función = SendMessage( hWndControl, LB_ADDSTRING, 0, ByVal StrPtr(TheText))
Else
Función = LB_ERR
Finalizar si
Finalizar función p>
'-- FF_ListBox_DeleteString----------------------------------------
'
' Elimina una cadena de un control ListBox
'
' hWndControl: identificador del control (por ejemplo, HWND_FORM1_LISTBOX1)
' nIndex: el índice de base cero de la cadena que se va a eliminar.
'
' Devuelve: el recuento del número de cadenas que quedan en
' lista, o LB_ERR si se produjo un error.
'
'----------------------- ---------------------------------------
Función FF_ListBox_DeleteString (ByVal hWndControl As Dword, _
ByVal nIndex As Long) As Long
' Realice una verificación para asegurarse de que se trata realmente de un identificador de ventana
Si IsWindow(hWndControl) Entonces
' Establece el texto y devuelve la posición donde se agregó el texto.
Función = SendMessage( hWndControl, LB_DELETESTRING, nIndex, 0) p>
Else
Función = LB_ERR
Finalizar si
Finalizar función
'-- FF_ListBox_GetCount----- --------------------------------------
'
'Retu
rns el número de elementos en un control ListBox
'
' hWndControl: Mango del control (por ejemplo, HWND_FORM1_LISTBOX1)
'
' Devuelve: El recuento del número de cadenas en la lista. El recuento es uno mayor que el valor del índice del último elemento (el índice está basado en cero). .
'--------------------------------- --------- ----------------------------------
Función FF_ListBox_GetCount (ByVal hWndControl As Dword) As Long
' Realice una verificación para asegurarse de que se trata realmente de un identificador de ventana
Si IsWindow(hWndControl) Entonces
' Establece el texto y devuelve la posición donde se agregó el texto.
Función = SendMessage(hWndControl, LB_GETCOUNT, 0, 0)
Else
Función = LB_ERR
Finalizar si
Finalizar función
'-- FF_ListBox_GetCurSel-------------------- ------------- ---------------
<'
' Devuelve el índice del archivo actualmente elemento seleccionado en un ListBox.
' No utilice esta función para cuadros de lista de selección múltiple.
' hWndControl: identificador de control (por ejemplo, HWND_FORM1_LISTBOX1). )
<'
' Devuelve: el índice de base cero del elemento seleccionado actualmente.
' Devuelve LB_ERR si no hay ninguna selección actual.
'
'- ------------------------------------ -------------- ---------------
Función FF_ListBox_GetC
urSel (ByVal hWndControl As Dword) As Long
'Haga una verificación para asegurarse de que se trata realmente de un identificador de ventana
If IsWindow(hWndControl) Then
' Establece el texto y devuelve la posición donde se agregó el texto.
Función = SendMessage(hWndControl, LB_GETCURSEL, 0, 0)
Else
Función = LB_ERR
Finalizar si
Finalizar función
'-- FF_ListBox_SetCurSel--------------------- -----------------------
<'
' Establece el elemento actualmente seleccionado en un ListBox y lo desplaza
' a la vista.
'
' hWndControl: Mango de control (por ejemplo, HWND_FORM1_LISTBOX1)
'
' nIndex: El índice de base cero de la cadena a seleccionar.
' Devuelve: Si se produce un error, se devuelve LB_ERR.
'
'------------------------------------------ --- ---------------------
Función FF_ListBox_SetCurSel (ByVal hWndControl Como Dword, ByVal nIndex Mientras) Mientras
'Haga una verificación para asegurarse de que se trata realmente de un identificador de ventana
Si IsWindow(hWndControl) Entonces
' Establezca el texto y devuelva la posición donde se agregó el texto.
Función = EnviarMessage( hWndControl, LB_SETCURSEL, nIndex, 0)
Else
Función = LB_ERR
Finalizar si
Función final
'-- FF_ListBox_GetText---------------------------------- -----------
<'
' Retirar
extrae una cadena de un ListBox.
'
' hWndControl: Mango de control (por ejemplo, HWND_FORM1_LISTBOX1)
'
' nIndex: El índice de base cero de la cadena que se va a recuperar.
<'
' Devuelve: si se produce un error, se devuelve LB_ERR; de lo contrario,
' la longitud de se devuelve la cadena.
<'
'----------------------------- --- -------------------------------------
Función FF_ListBox_GetText ( ByVal hWndControl As Dword, ByVal nIndex As Long) As String
Local nBufferSize As Long
Local nBuffer As String
' Haga una verificación para asegurarse de que esto sea en realidad un identificador de ventana
If IsWindow(hWndControl) Then
' Obtiene la longitud del texto
nBufferSize = SendMessage(hWndControl, LB_GETTEXTLEN, nIndex, 0)
Si (nBufferSize = 0) O (nBufferSize = LB_ERR) Entonces
Función = "": Ir a Salir
Finalizar si
' Añade un carácter extra para el terminador Nul
Incr nBufferSize
' Crea el buffer temporal
nBuffer = Space$(nBufferSize)
' Establece el texto y devuelve la posición donde se agregó el texto.
Si SendMessage( hWndControl, LB_GETTEXT, nIndex, ByVal StrPtr(nBuffer)) = LB_ERR Then
Función = " " p>
Else
' Eliminar el valor nulo
nBuffer = RTrim$(nBuffer, $Nul)
Función = nBuffer
Fin si
Else
Función = "" p>
Finalizar si
Salir:
Finalizar función
'-- FF_ListBox_InsertString-------------- --------------------------
<'
' Inserta una cadena en un control ListBox
'
' hWndControl: identificador de control (por ejemplo, HWND_FORM1_LISTBOX1)
' nIndex: la posición del índice de base cero para insertar la cadena
' into. Use -1 para agregar al final de la lista (o use
' la función FF_ListBox_AddString).
' TheText: el texto real a agregar.
'
' Devuelve: El índice de la posición en la que se insertó la cadena
', o LB_ERR si ocurrió un error.
'
'------------------------------------------- ----- -----------------------
Función FF_ListBox_InsertString (ByVal hWndControl Como Dword, _
ByVal nIndex As Long , _
ByVal TheText As String) As Long
' Haga una verificación para asegurarse de que se trata realmente de un identificador de ventana
If IsWindow (hWndControl) Luego
' Establece el texto y devuelve la posición donde se insertó el texto.
Función = SendMessage( hWndControl, LB_INSERTSTRING, nIndex, ByVal StrPtr(TheText)) p>
Más
Función = LB_ERR
Finalizar si
Finalizar función
'-- FF_ListBox_SetItemData--------------- --------------------------
<'
' Establece el valor del elemento de 32 bits asociado con la cadena especificada
' en un ListBox.
'
' hWndControl: Mango de control (por ejemplo, HWND_FORM1_LISTBOX1)
' nIndex : El índice de base cero de la cadena.
' nValue: El valor de 32 bits que se asociará con la cadena.
' Devuelve: Si se produce un error, se devuelve LB_ERR.
<'
'------------------------ - -------------------------------------------------
Función FF_ListBox_SetItemData (ByVal hWndControl Como Dword, _
ByVal nIndex Mientras, _
ByVal nValue Mientras) Mientras
' Realice una verificación para asegurarse de que se trata realmente de un identificador de ventana
If IsWindow(hWndControl) Then
'Establezca el texto y devuelva la posición donde se agregó el texto.
Función = EnviarMessage( hWndControl , LB_SETITEMDATA, nIndex, nValue)
Else
Función = LB_ERR
Fin si
Fin Función
'-- FF_ListBox_GetItemData-------------------------------- ---
<'
' Recupera el valor del elemento de 32 bits asociado con la cadena
' especificada en un ListBox.
'
' hWndControl: Mango de control (p. ej.
HWND_FORM1_LISTBOX1)
' nIndex: el índice de base cero de la cadena.
<'
' Devuelve: el valor de retorno es el valor de 32 bits asociado
' con la cadena. LB_ERR se devuelve si se produce un error.
'----------------- --------------------------------------------------
Función FF_ListBox_GetItemData (ByVal hWndControl As Dword, _
ByVal nIndex As Long) As Long
' Realice una verificación para asegurarse de que se trata realmente de un identificador de ventana
Si IsWindow(hWndControl) Entonces
' Establece el texto y devuelve la posición donde se agregó el texto.
Función = SendMessage( hWndControl, LB_GETITEMDATA, nIndex , 0)
Else
Función = LB_ERR
Finalizar si
Finalizar función
'-- FF_ListBox_FindString - ----------------------------------------
'
' Encuentra la primera cadena en un ListBox que comienza con el
' texto especificado. La búsqueda es independiente de mayúsculas y minúsculas, por lo que una cadena puede
' contener cualquier combinación de. letras mayúsculas o minúsculas.
'
' hWndControl: Mango de control (por ejemplo, HWND_FORM1_LISTBOX1)
'
' nIndex: El cero Índice basado en el elemento antes del primer
elemento que se buscará. Cuando la búsqueda llega al
final de la lista, continúa desde la parte superior de
.'
la lista hasta que alcance la posición nIndex Si
' nIndex = -1 entonces se busca en toda la lista desde
' el principio.
' p>
' SearchText: la cadena que contiene el prefijo a buscar.
<'
' Devuelve: el valor devuelto es el índice del elemento coincidente.
' Si se produce un error, se devuelve LB_ERR.
'
'-------------------- ------ -------------------------------------------- ------
Función FF_ListBox_FindString (ByVal hWndControl como Dword, _
ByVal nIndex como largo, _
ByVal SearchText como cadena) como largo
'Haz una verificación para asegurarte de que se trata realmente de un identificador de ventana
If IsWindow(hWndControl) Then
' Establece el texto y devuelve la posición donde se encuentra el texto. fue agregado.
Función = SendMessage( hWndControl, LB_FINDSTRING, 0, _
ByVal StrPtr(SearchText))
Else
Función = LB_ERR
Finalizar si
Finalizar función
'-- FF_ListBox_FindStringExact ------------------- ------------- --------
<'
' Encuentra la primera cadena en un ListBox que coincida con el texto de búsqueda
' exactamente. La búsqueda es independiente de mayúsculas y minúsculas, por lo que una cadena puede
' contener cualquier combinación de letras mayúsculas o minúsculas.
'
'
hWndControl: identificador de control (por ejemplo, HWND_FORM1_LISTBOX1)
'
' nIndex: índice de base cero del elemento antes del primer
' elemento que se buscará Cuando la búsqueda llega al final de la lista, continúa desde la parte superior de la lista hasta llegar a la posición nIndex. ' nIndex = -1 entonces se busca en toda la lista desde
' el principio.
' SearchText: La cadena que contiene el texto a buscar .
<'
' Devuelve: el valor devuelto es el índice del elemento coincidente.
' Si se produce un error, se devuelve LB_ERR.
'
'------------------------------------- -------- -----------------------
Función FF_ListBox_FindStringExact (ByVal hWndControl Como Dword, _
ByVal nIndex As Long, _
ByVal SearchText As String) As Long
' Realice una verificación para asegurarse de que se trata realmente de un identificador de ventana
Si IsWindow(hWndControl) Entonces
' Establece el texto y devuelve la posición donde se agregó el texto.
Función = SendMessage( hWndControl, LB_FINDSTRINGEXACT, 0 , _
ByVal StrPtr(SearchText))
Else
Función = LB_ERR
Fin si
Fin Función
ion