Есть 2 класса, в разных cpp 1) Главный class CCLASS_App : public CWinApp 2) Класс диалога class CCLASS_Dlg : public CDialog В главном написано Code: CCLASS_Dlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); Пытаюсь обработать нажатие клавиши вот так: Code: BOOL CCLASS_Dlg::PreTranslateMessage ( MSG* pMsg ) { if((WM_KEYDOWN == pMsg->message) && (VK_RETURN == pMsg->wParam)) { MessageBox("Hi"); return TRUE; // запрет дальнейшей обработки } // стандартная обработка сообщения return CWinApp::PreTranslateMessage(pMsg); } (вставлено во 2 класс) Но компилятор ругается error C2352: 'CWinThread:reTranslateMessage' : illegal call of non-static member function Если же обьявить эту функцию в главном классе - то все работает. Как сделать, чтобы код работал (обрабатывались нажатия только от 2 диалога)?
ой, народ, извините за столь глупый вопрос. проблему решил - надо написать так 2Модератор: тему можно потереть
agrofyl2 не порть себе мозг вымершим диалектом MFC. Если ты настоящий нерд клепай windows интерфейсы на ассемблере (с использованием winapi) А если тянет делать нормальные проги, но с кучей диалогов и ты не хочешь деградировать с RAD, изучай новые перспективные языки типа C# .NET, JAVA и популярный нынче python к которому можно привинтить QT, GTK и прочую графическую ересь. Интерфейс зло! консоль наше все - в край заюзай ncurses или его аналог под win если найдешь )