Red de conocimiento informático - Problemas con los teléfonos móviles - Problema del cuadro de lista del SDK

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

'-- 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)

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 = " "

Else

' Eliminar el valor nulo

nBuffer = RTrim$(nBuffer, $Nul)

Función = nBuffer

Fin si

Else

Función = ""

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))

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.

'

' 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