Здравствуйте Dancer, Вы писали:
D>Здравствуйте Кирпа В.А., Вы писали:
КВ>>Здравствуйте Dancer, Вы писали:
D>>>Как добавить в программу обработчик к-л пользовательского сообщения? Я сделал так:
D>>>добавляю к классу диалога метод
D>>>D>>>LONG CFractalDlg::OnThreadRedraw(UINT wParam, LONG lParam)
D>>>{ ...
D>>> return 0;
D>>>}
D>>>
D>>>а Сlass Withard сам добавляет ее описание в h-файл диалога, но не туда, где остальные обработчики описаны, а просто как public, например.
D>>>Но когда я делаю PostMessage из другого потока, сообщение этой функцией не перехватывается, хотя основной процес сообщение получает, я проверял GetMessage.
D>>>В чем тут может быть дело?
КВ>>А в карту сообщений добавить все-равно надо
КВ>>ON_MESSAGE(WM_USER + ..., OnThreadRedraw)
D>А куда это добавлять надо?
D>Вставил в срр-файл диалога
D>D>BEGIN_MESSAGE_MAP(CFractalDlg, CDialog)
D> //{{AFX_MSG_MAP(CFractalDlg)
D> ON_WM_SYSCOMMAND()
D> ...................
D> ON_MESSAGE(WM_USER+5, OnThreadRedraw)
D> //}}AFX_MSG_MAP
D>END_MESSAGE_MAP()
D>
D>в h-файл вставил прототип:
D>D>//{{AFX_MSG(CFractalDlg)
D> virtual BOOL OnInitDialog();
D> ...
D> afx_msg LONG OnThreadRedraw(UINT wParam, LONG lParam);
D>//}}AFX_MSG
D>DECLARE_MESSAGE_MAP()
D>
D>Там же
D>
D>D>#define WM_THREADREDRAW WM_USER + 5
D>
D>Но однако работать не стало. Может, я еще чего забыл?
D>
А почему ты посылаешь диалогу этот мессаг? У тебя что диалоговое приложение? Что в этот момент активнно окно диалога?
и второе
вообще-то прототип ф-ции такой
afx_msg LRESULT OnThreadRedraw(WPARAM wParam, LPARAM lParam);