В диалоговом окне расположена кнопка или скажем ListBox. Как при наведениее мышки на любой из этих элементов отловить это самое событие. Или не наведение мыши, а например нажатие клавиши "а" в ListBox'е ?
Дело то в том, что CDialog не ловит события от своих детей (в данном случае элементов управления). Или я не прав?
Конечно можно создать свой класс порожденный от CListBox и в нем перехватывать OnMouseMove. Тут все нормально. Но мне надо именно в диалоге обрабатывать события.
Хотя бы намекните, пожалуйста. Спасибо.
Здравствуйте konstBeast, Вы писали:
B>Дело то в том, что CDialog не ловит события от своих детей (в данном случае элементов управления). Или я не прав?
Прав. В дополнение к тому, что сказал Виталий, могу добавить следующее: в CYourDialog::PreTranslateMessage проверяешь все WM_KEYxxx и WM_xBUTTONxxx/WM_MOUSExxx, и если они посланы чайлду твоего диалога (hwndDlg == GetParent(pMsg->hwnd)), то отсылаешь дубликат сообщения самому диалогу, не забывая о преобразовании координат в мышиных месседжах.
Все месседжи придут в диалоговую процедуру, где ты сможешь их централизованно обработать.
B>Хотя бы намекните, пожалуйста. Спасибо.
Надеюсь, что помог