An application sends the LBN_SELCHANGE notification message when the selection in a list box is about to change. The parent window of the list box receives this notification message through the WM_COMMAND message.
LBN_SELCHANGE idListBox = (int) LOWORD(wParam); // identifier of list box hwndListBox = (HWND) lParam; // handle of list box
This notification message is not sent if the LB_SETCURSEL message changes the selection.
This notification message applies only to a list box that has the LBS_NOTIFY style.
For a multiple-selection list box, the LBN_SELCHANGE notification is sent whenever the user presses an arrow key, even if the selection does not change.