Re[4]: Основной MDIFrame в отдельном потоке
От: TatarDozor  
Дата: 09.09.08 06:03
Оценка:
Здравствуйте, AstroMan, Вы писали:

TD>>Что значит перекрыть? Каким образом можно это сделать?


AM>
AM>BOOL CMyMainFrame::OnCreateClient(LPCREATESTRUCT lpCreateStruct, CCreateContext*)
AM>{
AM>  // не вызываем CMDIFrameWnd::OnCreateClient!!!
AM>  return CreateClient(lpCreateStruct, NULL);
AM>}
AM>


Я так сделал и действительно приложение запустило еще один фрейм в отдельном потоке, только вот проблема осталось: при тыке мышью на любой документ приложение падает, а падает оно на функциях проверки
    CDocument::AssertValid();
        //эту функция в свою очередь вызывает проверку у вида документа
        void CView::AssertValid() const
        {//а тут вызывется функция
            CWnd::AssertValid();//здесь собственно все и падает!!!
        }

Приложение отображает документы в одном виде, условно назову его шаблон 1 (CDocTemplate).
Дело в том что в отдельном потоке с отдельным фреймом необходимо отображать документы с другим видом, а это значит что надо использовать другой шаблон, условно назову его шаблон 2, который в свою очередь я попытался привязать к классу CPreviewApp (наследнику от CWinThread), но че-то видимо не особо получилось. При работе в отдельном потоке приложение все равно обращается и использует шаблон 1 привязаннный к основному классу приложения CWinApp. По моему в этом и заключается проблема.
Как можно привязать другой шаблон для использования в отдельном потоке? и к какому классу его надо привязывать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.