Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Как сделать что б из потока выводились данные на листбокс - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Pomogite 7-omu klassu http://www.cyberforum.ru/cpp-beginners/thread31885.html
Uv experti pomogite mne postupit v LKSH-2009... Pomogite reshit zadachi http://lksh.ru/sis/2009/vstupit/b.pdf http://lksh.ru/sis/2009/vstupit/a.pdf
C++ Объясните,почему шаблоны написаны через struct? Пришлось залезть в файл limits,обратил внимание,что все шаблоны написаны через struct.Можете объяснить,почему?В смысле почему не классы?В шаблонах должен быть обязательно Cи?Или просто по мере... http://www.cyberforum.ru/cpp-beginners/thread31876.html
C++ Задача на 10-элементные вещественные вектора
помогите пожалуйста с задачей.....уже неизвестно сколько голову ломаю, вроде бы принцип расчета понятен а в программе реализовать не могу. Условие: Даны 10-элементные вещественные вектора x,y и z....
C++ Создать класс матрица
Такая задача: Определить класс матрица в классе предусмотреть следующие действия: -ввод и вывод матрицы -вычисление суммы элементов,расположенных выше главной диагонали. -поиск номера первой из...
C++ Делители... http://www.cyberforum.ru/cpp-beginners/thread31843.html
Помогите улучшить код, не проходит 23-ий тест.... Программа по количеству N делителей находит минимальное число Q,которое имеет N делителей... http://********/index.asp?main=task&id_task=289...
C++ Лабораторная на структуры/файлы/и.т.д. хлп Помогите написать компьютерний вариант телефонной-книги. Последняя лабораторная не могу никак доделать. Делаю с помощью структур. С вводом и виводом данных все написал, но нужно еще что бы тел.книга... подробнее

Показать сообщение отдельно
CheshireCat
Эксперт С++
2893 / 1242 / 78
Регистрация: 27.05.2008
Сообщений: 3,389
28.04.2009, 14:50
Нельзя. Напрямую - никогда. Частая ошибка программистов на VC++/MFC, которая чревата появлением трудновоспроизводимых глюков.

А теперь подробности: CListBox является наследником CWnd, а к самому CWnd и ко всем его наследникам можно обращаться только и исключительно из того же самого потока, который их создал. Так уж устроена MFC. Она держит хэндлы всех окон в TLS потока.
Разумеется, обращаясь к окну из "чужого" потока, она попытается обратиться по "чужому" хэндлу. Что при этом произойдет - зависит от фазы луны. Может быть, в этот раз повезет и все сработает, как надо. Может быть, нет.

Что делать: из рабочего потока (ServiceThread) слать сообщения (PostMessage, но не SendMessage!) главному потоку приложения или главному окну, а там - их соответственно обрабатывать и писать что-то в Listbox.

Об этой особенности написано в литературе по MFC, только лень сейчас рыть.... Например, у Мешкова и Тихомирова в "Visual C++ и MFC".
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru