I have created a custom control as a derived class of `CWnd` that selects a sub-range from a range. To test, I created a MFC Dialog Application in Visual Studio 2010 with a member instance of my custom class and some member `CEdit` instances to display the currently selected range from the custom control.

In the custom class, I have:

```
BEGIN_MESSAGE_MAP(CRangeSelectorCtrl, CWnd)
  ...
  ON_WM_LBUTTONDOWN()
  ...
END_MESSAGE_MAP()

...

void CRangeSelectorCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
  if (leftScrollArrowRect().PtInRect(point))
  {
    d_range_selector.SlideBar(-1);
    Invalidate();
  }
  else if (rightScrollArrowRect().PtInRect(point))
  {
    d_range_selector.SlideBar(1);
    Invalidate();
  }
  CWnd::OnLButtonDown(nFlags, point);
}

```

In my test dialog app, I have:

```
BEGIN_MESSAGE_MAP(CTestRangeSelectorCtrlDlg, CDialogEx)
  ...
  ON_WM_PARENTNOTIFY()
  ...
END_MESSAGE_MAP()
...
BOOL CTestRangeSelectorCtrlDlg::OnInitDialog()
{
  CDialogEx::OnInitDialog();
  ...
  m_range_selector_ctrl.ModifyStyleEx(WS_EX_NOPARENTNOTIFY, 0);
   ...
}
...
void CTestRangeSelectorCtrlDlg::OnParentNotify(UINT message, LPARAM lParam)
{
  CDialogEx::OnParentNotify(message, lParam);
  if (message == WM_LBUTTONDOWN)
  {
    updateEditBoxes();
  } 
}

```

This almost works, but the problem is that the dialog's `OnParentNotify` get's called before the child has updated in response to the left-click so the values are all behind by one click.

How can I make `OnParentNotify` or another method in the parent be called after `OnLButtonDown` finishes in the child? Or is there another way to accomplish what I want?

I have tried having the parent respond to `WM_LBUTTONUP` messages but when I add message handlers for `WM_LBUTTONUP` in the child and check for them in `OnParentNotify()` they are called in the child but never propagate to the parent (this is true even when I comment out the `CWnd::OnLButtonDown` call in `CWnd::OnLButtonDown(nFlags, point)`.