У меня есть некоторый контроль, например CtrlTree
на CMyDialog
. Я хочу обрабатывать сообщения типа ON_WM_LBUTTONDOWN()
от CTreeCtrl
в классе CMyDialog
.
Есть ли способ в MFC перенаправить поток сообщений на родительский?
У меня есть некоторый контроль, например CtrlTree
на CMyDialog
. Я хочу обрабатывать сообщения типа ON_WM_LBUTTONDOWN()
от CTreeCtrl
в классе CMyDialog
.
Есть ли способ в MFC перенаправить поток сообщений на родительский?
Самый простой способ перенаправить ваши сообщения - просто отправить настраиваемое сообщение (WM_USER + xxx) из обработчика ON_WM_LBUTTONDOWN вашего элемента управления в родительский класс.
Поместите родительский код обработчика WM_LBUTTONDOWN в отдельный метод и вызовите этот метод напрямую.
Что-то вроде этого (псевдокод), предполагая, что ваш существующий код находится в HandleTreeCtrlLBDown ()
CMyTreeCtrl::OnLButtonDown(..)
{
pParent ->SendMessage(WM_TREECTRLLBDOWN, 0, (LPARAM)this);
}
CControlParentDialog::OnTreeCtrlLBDown(wParam, lParam)
{
HandleTreeCtrlLBDown();
}