Мне нужно все собщения главного окна отлавливать также в другом классе.
т.е у меня есть класс CTrayApp, в нем есть обработчик создания окна
template <class T>
class CTrayApp
{
public:
BEGIN_MSG_MAP(CTrayApp)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
MESSAGE_HANDLER(TRAY_NOTIFYICON, OnTrayIcon)
END_MSG_MAP()
LRESULT OnCreate(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
.............
И также класс фрейма окна, где я обрабатываю все сообщения.
class COnAirFrame :
public CFrameWindowImpl<COnAirFrame>,
public CUpdateUI<COnAirFrame>,
public CAppWindow<COnAirFrame>,
public CMessageFilter, public CIdleHandler,
public CTrayApp<COnAirFrame>
{
private:
typedef CTrayApp<COnAirFrame> TrayApp;
..........
BEGIN_MSG_MAP(COnAirFrame)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
CHAIN_MSG_MAP(TrayApp)
CHAIN_MSG_MAP(CAppWindow<COnAirFrame>)
CHAIN_MSG_MAP(CUpdateUI<COnAirFrame>)
CHAIN_MSG_MAP(CFrameWindowImpl<COnAirFrame>)
END_MSG_MAP()
Я вызываю вроде CHAIN_MSG_MAP(TrayApp) т.е все сообщения должны также идти и в класс CTrayApp, а почему-то обрабатывается OnCreate базового класса. Наверное тут что-то совсем по другому делать надо, направте в какую сторону капать пожалуйста.