Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание вручную child в MDI 
V
    Опции темы
Homer
Дата 30.4.2006, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 29.12.2004

Репутация: нет
Всего: нет



  Как вручную создать новое child окно? то сеть то же самое, что при тыкании на кнопку new, только вручную. 
PM MAIL   Вверх
Бугемот
Дата 1.5.2006, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 27.12.2005

Репутация: 1
Всего: 1



возможны 2 варианты:
1. не используется док/вью, поэтому дочернее окно - это всего лишь рамка с представлением внутри:
Код

    CCreateContext cc;
    cc.m_pNewViewClass = RUNTIME_CLASS(CYourView);
    cc.m_pCurrentDoc = NULL;
    cc.m_pNewDocTemplate = NULL;
    cc.m_pLastView = NULL;
    cc.m_pCurrentFrame = this;
    CRuntimeClass *pNewViewClass = RUNTIME_CLASS(CMDIChildWnd);
    CMDIChildWnd *pchild_wnd = (CMDIChildWnd *) pNewViewClass->CreateObject();
    if(!pchild_wnd)
        return;
    if(pchild_wnd->LoadFrame(IDR_FRAME_ACTIVE_ACCOUNT,
        WS_CHILD |WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, NULL, &cc))
    {
        pchild_wnd->SetTitle("Активные пользователи");
        pchild_wnd->InitialUpdateFrame(NULL, TRUE);
    }

2. используется архитектура док/вью:
здесь немного сложнее: сначала надо "найти" необходимый доктемплейт (CDocTemplate), а затем уже создать для него новый документ
если нужен код как найти - напишу  

Это сообщение отредактировал(а) Бугемот - 1.5.2006, 10:50
PM MAIL   Вверх
OverBug
Дата 3.5.2006, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 13.4.2006
Где: г.Пенза, Пензенск ой обл.

Репутация: нет
Всего: 1



Цитата

если нужен код как найти - напишу  

Homer, думаю тебе нужно, если нет, 
Бугемот, все ровоно напиши, мне нужно, другим будет нужно. 
PM MAIL ICQ   Вверх
Homer
Дата 4.5.2006, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 29.12.2004

Репутация: нет
Всего: нет



Цитата

2. используется архитектура док/вью:
здесь немного сложнее: сначала надо "найти" необходимый доктемплейт (CDocTemplate), а затем уже создать для него новый документ

спасибо,  Бугемот, разобрался, все работает.

OverBug, вот как я сделал:
Код

    CDocument *doc;
    CDocTemplate *temp;
    
    POSITION pos=theApp.GetFirstDocTemplatePosition();
    temp=theApp.GetNextDocTemplate(pos);
    doc=temp->OpenDocumentFile(NULL, TRUE);

можно еще через CreateNewFrame, но в моем случае лучше OpenDocumentFile. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0879 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.