Create a list box as a child of parent.
Append text to the end of the list; returns the new item's index.
Remove all items (and release any retained item data; see setItemData).
Return the number of items in the list.
Return the opaque pointer previously stored for the item at index.
Return the text of the item at index, or "" if it has none.
A sensible default size for a list box.
Return the selected item's index, or -1 (LB_ERR) if none is selected.
Return the indices of every selected item, or null if none are selected.
Insert text at index, shifting later items down.
Route a WM_COMMAND notification. Fires onSelectionChanged on LBN_SELCHANGE and onItemActivated on LBN_DBLCLK.
Auto-select the first item when a single-select list box gains focus and nothing is selected yet, so a screen reader announces an item on tab-in. Focus messages are never consumed.
Remove the item at index.
Associate an opaque data pointer with the item at index.
Select or deselect the item at index.
Select the item at index (pass -1 to clear the selection).
Fired when an item is activated (double-clicked); carries its index.
Fired when the selection changes; carries the new selected index.
The control's command identifier (the hMenu child id at creation).
Set the control's text.
Get the control's text.
Assign a font to the control and request a repaint.
A reasonable default preferred size; override per control type.
Handle a WM_COMMAND notification routed from the parent.
Handle a WM_NOTIFY notification routed from the parent. Return true if it was handled. The default does nothing.
Install a subclass window procedure so the control can intercept its own messages (for example, swallowing the Enter key in a text field). Idempotent. Subclasses override processSubclassed to do the work.
Intercept a message while subclassed. Set result and return true to consume the message; return false to let default processing continue.
A native Win32 list box: a scrollable column of selectable string items.