WinQueryLboxItemTextLength
Appearance
This macro returns the length of the text of the indexed item in the List Box.
Syntax
WinQueryLboxItemTextLength(hwndLbox, index)
Parameters
Returns
- sRetLen (SHORT) - returns
- Text length of the indexed item.
Remarks
This macro is defined as&colon.
#define WinQueryLboxItemTextLength(hwndLbox, index) \ ((SHORT)WinSendMsg(hwndLbox, \ LM_QUERYITEMTEXTLENGTH, \ MPFROMSHORT(index), \ (MPARAM)NULL))
This macro requires the existence of a message queue.
Example Code
#define INCL_WINWINDOWMGR /* Or use INCL_WIN, INCL_PM, */ #include <os2.h> HWND hwndLbox; /* Listbox handle. */ SHORT index; /* Index of the item in the List Box. */ SHORT sRetLen; /* Text length of the indexed item. */ sRetLen = WinQueryLboxItemTextLength(hwndLbox, index);
This example uses WinQueryLboxItemText to copy all of the list box items into a buffer.
#define INCL_WINLISTBOXES
#define INCL_WINWINDOWMGR
#include <OS2.H>
LONG cWindows;
char *szTemp;
HWND hwndLB;
SHORT maxchar, index = 0;
cWindows = WinQueryLboxCount(hwndLB);
/* allocate a buffer for cWindows items. */
DosAllocMem((PPVOID)&szTemp,
(ULONG)cWindows*256*sizeof(char),
PAG_READ |
PAG_WRITE |
PAG_COMMIT);
/* loop through all of the items; copying each */
/* one the buffer. */
while (index <= cWindows)
{
maxchar = WinQueryLboxItemTextLength(hwndLB,index);
WinQueryLboxItemText(hwndLB,
index++,
szTemp,
maxchar);
szTemp+=maxchar; /* increment pointer by number */
/* of bytes copied. */
}