SendMessage из рабочего потока
Так не получается.
UINT MyTreadProc(LPVOID pParam)
{
AfxMessageBox("Entering thread");
SendMessage(AfxGetMainWnd()->GetSafeHwnd(), WM_MY_MSG, 0, (LPARAM)"hello!");
return 0;
}
У меня приложение doc/view на CFormView.
Пробовал через FindWindow - тоже не получается
Цитата:
Originally posted by cozy
Как послать сообщение окну из рабочего потока?
Так не получается.
UINT MyTreadProc(LPVOID pParam)
{
AfxMessageBox("Entering thread");
SendMessage(AfxGetMainWnd()->GetSafeHwnd(), WM_MY_MSG, 0, (LPARAM)"hello!");
return 0;
}
У меня приложение doc/view на CFormView.
Пробовал через FindWindow - тоже не получается
Как послать сообщение окну из рабочего потока?
Так не получается.
UINT MyTreadProc(LPVOID pParam)
{
AfxMessageBox("Entering thread");
SendMessage(AfxGetMainWnd()->GetSafeHwnd(), WM_MY_MSG, 0, (LPARAM)"hello!");
return 0;
}
У меня приложение doc/view на CFormView.
Пробовал через FindWindow - тоже не получается
попробуй явно указатель на окно сохранить...
т.е. в классе создай переменную HWND и при инициализации присваивай ему значение хэндла твоего окна и потом в SendMessage используй это переменную...
У меня когда-то была ситуация, когда рабочий поток в отдельном классе запускался, так вот проблему обмена сообщений я решил через дополнительную переменную.
Цитата:
Originally posted by xelos
попробуй явно указатель на окно сохранить...
т.е. в классе создай переменную HWND и при инициализации присваивай ему значение хэндла твоего окна и потом в SendMessage используй это переменную...
У меня когда-то была ситуация, когда рабочий поток в отдельном классе запускался, так вот проблему обмена сообщений я решил через дополнительную переменную.
попробуй явно указатель на окно сохранить...
т.е. в классе создай переменную HWND и при инициализации присваивай ему значение хэндла твоего окна и потом в SendMessage используй это переменную...
У меня когда-то была ситуация, когда рабочий поток в отдельном классе запускался, так вот проблему обмена сообщений я решил через дополнительную переменную.
Пробовал передать потоку указатель на окно, но не получается. Посмотри, плиз, мой проект - он пустой, только обработка этого сообщения.
Я уже как только не измывался над этим - не получается
У тебя GetSafeHwnd() получает handle не frame, а view.
Ну а обработчик во frame'e и т. д.
Можно что-нить вроде ::GetParent(GetSafeHwnd());
Запусти Spy++, полюбуйся.