Я видел, что это спросило много путей, но никогда не видел фактического рабочего кода.C++ WTL8.1 Как создать окно в новом потоке с контуром сообщения?
Я пробовал это, без сомнения, наивную попытку создать новый поток с новым окном и контуром сообщений. У меня есть функция, которая должна открывать окно & обрабатывать его сообщения и запускаться в средах, где он может быть вызван из приложения без существующего цикла сообщений (и никаких других окон) или обычного цикла сообщений mfc или цикла сообщений WTL. Я видел кое-что о AddMessageLoop и Модулях? но оказалось, что это было для основного приложения. В любом случае там может быть или не быть модуль WTL. Необходимо отдельное окно с базовым циклом сообщений. Переход в класс WTL с открытым окном, поэтому окно открывается в том же потоке, что и в цикле. Необходимо также создать объект класса в новом потоке?
// does not work....
static DWORD WINAPI MyRunThread(__in LPVOID lpParameter)
{
CMessageLoop theLoop;
WTLsubclass *nav = (WTLsubclass *) lpParameter;
nav->CreateWindow();
int nRet = theLoop.Run();
return nRet;
}
CreateThread(0,0,MyRunThread,&nav,0,0);
Если это может быть вызван из приложения без окон, вы, вероятно, не сможете создать его с помощью параметра класса Window. –
Итак, этот фрагмент кода, работает ли он? Выглядит хорошо для меня - вы начинаете нить, вы создаете окно там, и вы продолжаете накачивать сообщения. –