FAQ:WinAPI VCPP:обработчик сообщения для нескольких элементов — различия между версиями
Материал из Весельчак У
RXL (обсуждение | вклад) (Разделение FAQ на статьи.) |
(нет различий)
|
Текущая версия на 19:52, 2 ноября 2008
Как сделать обработчик сообщения для нескольких элементов управления сразу?
Без помощи визарда (Wizard) это можно сделать переопределением виртуальной функции OnCommand():
BOOL CMyDialog::OnCommand(WPARAM wParam, LPARAM lParam) { //командное сообщение WORD wMess=(wParam >> 16); //ID элемента управления int nID=(int)(wParam &0x0000ffff)); //хендл элемента управления HWND hW=(HWND)lParam; // смотрим, какой элемент управления switch (nID) { //CButton (кнопки, переключатели, флажки) case ID_BN1: case ID_BN2: case ID_BN3: { //смотрим, какое сообщение switch (wMess) { case BN_CLICKED: { ... } break; } } break; //CEdit case ID_ED1: case ID_ED2: case ID_ED3: case ID_ED4: { // смотрим, какое сообщение switch (wMess) { case EN_CHANGE: { ... } break; case EN_KILLFOCUS: { ... } break; } } break; } return CDialog::OnCommand(wParam, lParam); }