Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Создать контрол в другом потоке


Автор: Stecya 13.1.2010, 17:34
Есть CTabCtrl - в гланом потоке создаю пару табов далее запускаеться отдельний поток которий принимает дание и при определьоних даних он должен создать таб 

При додавание таба з другого потока вилетает ASSERT в objcore
Код

CHandleMap* pMap = afxMapHWND();
ASSERT(pMap != NULL);


Порился в сети и узнал что нельзя создавать контрол из другого потока.....Пожалуйста посоветуйте как решить даную проблему

P.S. Простите за корявий русский

Автор: Alca 13.1.2010, 18:11
Из рабочего потока делай ::PostMessage с "твоим" (WM_MYMSG) сообщением, 
а в главном потоке лови это сообщение. Ну а потом создавай таб.

Добавлено @ 18:11
Цитата

Простите за корявий русский

я прощяю  smile

Добавлено через 3 минуты и 27 секунд
http://forum.vingrad.ru/forum/topic-60076/view-all.html + поиск по PostMessage (Delphi)

Автор: artsb 13.1.2010, 18:40
Можно юзать сообщения, как Alca предлагает.
А можно через Synchronize вызывать метод основного потока, передавая необходимые параметры. А уж он, будет создавать ТАБ и заносить нужную информацию.

Автор: Stecya 15.1.2010, 17:23
Сделал через ::SendMessage
спасибо за наводку

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)