Listing 5

struct no_rclick_dlg : wnd_extend<dialog,no_rclick_dlg> {
    no_rclick_dlg();
};
struct no_rclick_handler 
    : subclass::manual_event_handler<no_rclick_handler,edit> {
  handle_event on_down(answer a) {
    a = event_handled; // stop further processing
    return event<WM_RBUTTONDOWN>().HANDLED_BY(&me::on_down);
  }
  handle_event on_up(answer a) {
    a = event_handled; // stop further processing
    return event<WM_RBUTTONUP>().HANDLED_BY(&me::on_up);
  }
};
no_rclick_dlg::no_rclick_dlg() {
  wnd_iterator<edit> b = find_wnd_range<edit>(this,search_children), e;
  for ( ; b != e; ++b) 
    subclass::add_manual_event_handler<no_rclick_handler>(
      *b,events_before);
}