Я читаю код других людей, и их код работает. Я просто чувствую себя немного смутить о PostMessage и цикл обработки сообщений, они использовалиpostmessage и цикл сообщений в другой теме
#define MESSAGE XXX //some number
BEGIN_MESSAGE_MAP(myClass, CDialog)
//...
ON_THREAD_MESSAGE(...)
END_MESSAGE_MAP()
... myClass::funcA(...)
{
static HANDLE t = createThread(...., funcB,....)
.....
postmessage(MESSAGE)
}
... myClass::funcB(...)
{
....
while(...)
{
TranslateMessage(&msg);
dispatchMessage(&msg);
}
}
код выглядит так, но с небольшой модификацией
Согласно MSDN когда _In_opt_ HWND HWND из PostMessage установлено нулевое значение
Функция ведет себя как вызов PostThreadMessage с параметром dwThreadId, установленным для идентификатора текущего потока.
это сбивает с толку. Кажется, поток t, созданный основным потоком, фактически получает сообщение msg? может кто-нибудь объяснить это?
Кстати, я новичок в MFC, и это мой первый пост здесь, если я неправильно что-нибудь, дайте мне знать,
Вы отправили неправильную заглавную запись для createThread и postmessage? Это не функции MFC или API, если они капитализируются по мере того, как вы показываете. –
@ ScottMcP-MVP, о, да, я сделал некоторые опечатки там. они должны быть PostMessage и CreateThread – HLi