Listing 6

// cool_dlg.h
struct cool_dlg 
    : wnd_extend<dialog,cool_dlg>,
      wnd_extend<resizable_wnd,cool_dlg> {
        // allow access to internal data
        friend struct cool_dlg_handler; 
        // ...
};
// cool_dlg.cpp
struct cool_dlg_handler 
    : event_handler<cool_dlg_handler, cool_dlg,dialog, events_before> {
    // ...
};
// note: we're fine with how resizable_wnd handles things...
//       no need to create our own special event handler for that