PostMessage не работает в диалоговом приложении MFC

Я пытаюсь отправить сообщение с помощью PostMessage из рабочего потока в основной поток диалога. Все это происходит в одном классе — классе моего диалога — «CrMainDlg».
Вот код прототипа передаваемой функции в «CrMainDlg.h»

afx_msg LRESULT OnThumbnailLoaded(WPARAM, LPARAM);

вот я повторяю новое сообщение в «CrMainDlg.cpp» после «#include» lines «

 `UINT THUMBNAIL_WAS_LOADED = ::RegisterWindowMessage(L"THUMBNAIL_WAS_LOADED");`

вот моя карта сообщений:

BEGIN_MESSAGE_MAP(CrMainDlg, CDialogEx)
//...
ON_MESSAGE(THUMBNAIL_WAS_LOADED, CrMainDlg::OnThumbnailLoaded)
//...
END_MESSAGE_MAP()

реализация функции обработчика:

afx_msg LRESULT CrMainDlg::OnThumbnailLoaded(WPARAM, LPARAM)
{
AfxMessageBox(L"Func called!");
return 0;
}

и там я создаю новую тему по нажатию кнопки:

 void CrMainDlg::OnBnClickedButton1()
{
inputParam* iP = new inputParam;
iP->m_hWnd = ::FindWindow(NULL, L"rTestTask");
CWinThread* fonThread = AfxBeginThread(WorkerThreadProc, iP,   THREAD_PRIORITY_NORMAL, 0,       0, NULL);
}

по крайней мере, поток func:

 UINT CrMainDlg::WorkerThreadProc(LPVOID Param)
{
if(Param == NULL)
{
AfxMessageBox(L"Params == NULL!");
return 0;
}

inputParam* p = (inputParam*)Param;
BOOL ch = ::PostMessage(p->m_hWnd, THUMBNAIL_WAS_LOADED, 0, 0); // ch == 1 =>no error
delete p;
return 0;
}

но это не вход в OnThumbnailLoaded — мой дескриптор func. Скажите пожалуйста, что я делаю не так?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]