<!-- Add the rest of your HTML here -->
Suppose we have a combobox-based control created in the usual manner
or many others similar CodeProject articles). This control is used in a dialog and
is notified about the control's activities
using the common notify-message mapping
All is fine until the moment the control requires notification as well.
Without any problems we can map the new functionality and all works well:
From the user's view selecting a new combo item changes the actual value
but after clicking OK the new values were not used. What's going on?
The problem is with recognizing the changes made. Because we are using
is not being called.
Of course it is not system bug but documented behaviour
- see MSDN TN062: Message Reflection for Windows Controls
- and a solution is easy:
Instead of using
or provide a more general handler. For example:
BOOL CMyComboBox::OnChildNotify(UINT message, WPARAM wParam,
LPARAM lParam, LRESULT* pLResult)
if(message == WM_COMMAND)
int wNotifyCode = HIWORD(wParam);
int wID = LOWORD(wParam);
HWND hwndCtl = (HWND) lParam;
return CComboBox::OnChildNotify(message, wParam, lParam, pLResult);
Hopefully reading this will help you avoid similar cases.