CB_FINDSTRING
wParam = (WPARAM) indexStart; /* item before start of search */
lParam = (LPARAM) (LPCSTR) lpszFind; /* address of prefix string */
An application sends a CB_FINDSTRING message to find the first string that contains the prefix specified in the list box of a combo box.
indexStart
Value of wParam. Specifies the zero-based index of the item before the first item to be searched. When the search reaches the bottom of the list box, it continues from the top of the list box back to the item specified by the indexStart parameter. If indexStart is –1, the entire list box is searched from the beginning.
lpszFind
Value of lParam. Points to the null-terminated string that contains the prefix to search for. The search is not case-sensitive, so this string can contain any combination of uppercase and lowercase letters.
The return value is the zero-based index of the matching item, or it is CB_ERR if the search was unsuccessful.
If the combo box's style is owner-drawn but not CBS_HASSTRINGS and CBS_SORT, CB_FINDSTRING is used. If the styles are owner-drawn and CBS_SORT but not CBS_HASSTRINGS, WM_COMPAREITEM messages are sent.
This example searches for the string “my string” in a combo box and copies it, if found, to the szBuf buffer:
char szBuf[20];
DWORD dwIndex;
dwIndex = SendDlgItemMessage(hdlg, ID_MYCOMBOBOX,
CB_FINDSTRING, 0, (LPARAM) ((LPCSTR) "my string"));
if (dwIndex != CB_ERR)
SendDlgItemMessage(hdlg, ID_MYCOMBOBOX,
CB_GETLBTEXT, (WPARAM) dwIndex, (LPARAM) ((LPCSTR) szBuf));