Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Рисование в отдельном потоке

88K
14 ноября 2013 года
SwanSONG
2 / / 14.11.2013
Здравствуйте, коллеги!
В теме разбираюсь не очень, потому зараннее сорри за сумбур :-)
Есть необходимость рисовать (через CPaintDC) в отдельном потоке. Т.к. раньше с этим никак не сталкивался, я не смог понять (гугл курил всю ночь), как передать в поток указатель на контекст устройства для рисования.

Объявление функции-потока:

 
Код:
static UINT proc1(LPVOID Param);
88K
14 ноября 2013 года
SwanSONG
2 / / 14.11.2013
Здравствуйте, коллеги!
В теме разбираюсь не очень, потому зараннее сорри за сумбур :-)
Есть необходимость рисовать (через CPaintDC) в отдельном потоке. Т.к. раньше с этим никак не сталкивался, я не смог понять (гугл курил всю ночь), как передать в поток указатель на контекст устройства для рисования.

Объявление функции-потока:
 
Код:
static UINT proc1(LPVOID Param);
Получение контекста в главном потоке:
 
Код:
CPaintDC dc(this);
Создание потока:
 
Код:
AfxBeginThread(proc1, &dc);
А вот как получить в потоке контекст,я не понял.
Пробовал через приведение типов (reinterpret_cast) - глухо. Проект компилируется, но вылетает ошибка
Помогите, плз
326
20 декабря 2013 года
sadovoya
757 / / 19.11.2005
Еще актуально?
С этим классом не знаком, но по аналогии с обычными API-потоками, что то мне подсказывает, что ваш &dc уже сидит в функции потока под именем Param. Осталось его внутри функции потока преобразовать из void* обратно и использовать. Можно так:
type*_dc = (type*)Param; //извлекаем указатель на dc внутри функции потока.
Но, это гипотеза. Может вы и так это уже делали через reinterpret_cast<>()...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог