c++ - How to implement the event handler for a MFC CEdit ON_EN_SETFOCUS? -
i'm maintaining mfc c++ code , have screen many cedit
objects.
i want implement onfocus
event of write 1 method treat event.
to need know cedit
id fired event looks implementation of onfocus
event in mfc not have parameter (compared other events onctlcolor
has cwnd*
object parameter).
i refuse believe have implement small method each single cedit
passing id main method want!. if that's solution, shame on mfc!
on_control_range
macro exists allow mapping single handlers same event on multiple controls.
first need ensure control ids sequential. in header need declare handler takes control id parameter:
afx_msg void onsetfocusmulti(uint ctrlid);
this allows distinguish sender control in handler if need it.
now need add message map, instead of bunch of on_en_setfocus(idc_edit1, &cmydlg::onsetfocus)
:
on_control_range(en_setfocus, idc_edit1, idc_edit_x, onensetfocusmulti) ^ ^ ^ ^ // notification code | first ctrl | last ctrl | handler
other message map macros documented here
Comments
Post a Comment