Потоки

Общие вопросы, не зависящие от языка реализации.

Модераторы: Duncon, Hawk, Romeo, Eugie

Ответить
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

08 ноя 2004, 13:27

Доброго времени суток.
Вопрос:
Есть SDI приложение.
По нажатию кнопки создаю поток, который ее обрабатывает.
Из функции потока делаю вызов AfxGetMainWnd().
Привожу результат к (CMainFrame*).
Вызываю GetActiveDocument().
Получаю эксепшн.
В чем проблема?
Может есть альтернативный способ для подобного случая.
Главная моя задача - получать уведомление о нажатых клавишах, внутри функции, которая выполняется при определенных обстоятельствах.
В SAD - все в SAD.
Acidy
Сообщения: 23
Зарегистрирован: 19 окт 2004, 10:40
Откуда: хз
Контактная информация:

09 ноя 2004, 09:12

Выливай свой кусок кода ... посмотрим что там. :o
Удачи... =)
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

09 ноя 2004, 15:38

Спасибо в принципе уже решил проблему =- причем самым неожиданным для себя способом.
Вместо GetActiveDocument() вызвал GetActiveView()->GetDocument() и вроде как все заработало.
Интересно однако в чем разница
В SAD - все в SAD.
Acidy
Сообщения: 23
Зарегистрирован: 19 окт 2004, 10:40
Откуда: хз
Контактная информация:

10 ноя 2004, 12:51

Да, но если эта CView-шка потеряет фокус, например, при переключении на какой-нить CDialogBar, то GetActiveView() и GetActiveDocument() будет возращать NULL и тогда "пиши пропало". Лучше объект класса, которому нужен указатель на CDocument снабжать его этим указателем где-то заранее...
Удачи... =)
Ответить