Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите начинающему в VC / 5 сообщений из 5, страница 1 из 1
08.02.2003, 15:03
    #32103404
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему в VC
Подскажите, как в MDIприложении на VC вызвать определенное дочернее окно. Т.е. при повторном нажатии на кнопку вызова окна А из главного окна открывалось не первое окно, а активизировалось уже существующее
...
Рейтинг: 0 / 0
11.02.2003, 17:45
    #32104735
FYRK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему в VC
В майнфрэйме создаешь мембер ф-ию
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
void CMainFrame::CreateOrActivateFrame(CDocTemplate *pTemplate, CRuntimeClass *pViewClass)
{
        CView* pView;
        CDocument* pDoc;
        POSITION pos;

        if(MDIGetActive() != NULL)
        {
                if((pos = pTemplate->GetFirstDocPosition()) != NULL)
                {
                        pDoc = pTemplate->GetNextDoc(pos);
                        pos = pDoc->GetFirstViewPosition();
                        while (pos != NULL)
                        {
                                pView = pDoc->GetNextView(pos);
                                if (pView->IsKindOf(pViewClass))
                                {
                                        pView->GetParentFrame()->ActivateFrame(SW_RESTORE);
                                        return;
                                }
                        }
                }
                else
                {
                        pDoc = (CDocument*)pTemplate->CreateNewDocument();
                }
        }
        else
        {
                pDoc = (CDocument*)pTemplate->CreateNewDocument();
        }

        CMDIChildWnd* pNewFrame = (CChildFrame*)(pTemplate->CreateNewFrame(pDoc, NULL));
        if (pNewFrame == NULL)
                return;     // not created
        ASSERT_KINDOF(CMDIChildWnd, pNewFrame);
        pTemplate->InitialUpdateFrame(pNewFrame, pDoc);
}

На итем в менюшке ID_MY_MENU_ITEM вешаешь хандлер
Код: plaintext
1.
2.
3.
4.
void CMainFrame::OnMyMenuItem()
{
        CreateOrActivateFrame(theApp.m_pMyViewTempl, RUNTIME_CLASS(CMyView));
}
...
Рейтинг: 0 / 0
12.02.2003, 12:17
    #32105039
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему в VC
Спасибо большущее!!! Получилось!!!
...
Рейтинг: 0 / 0
13.02.2003, 10:31
    #32105585
Гость
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему в VC
Все хорошо работает за исключением того, что пропали названия окон дочерних и не отображаются правильно названия в меню Window (открытые окна). Подскажите, как исправить?
...
Рейтинг: 0 / 0
14.02.2003, 11:25
    #32106450
FYRK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите начинающему в VC
У ЦДокумента есть мембер переменная m_strTitle.

Делаешь своему CMyDoc AddVirtualFunction,
выбираешь OnNewDocument и устанавливаешь там m_strTitle

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
BOOL CMyDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// вот тут
	m_strTitle = _T( "Вот тут название твонго дока" );
	return TRUE;
}


можно еще это сделать через его темплате(это даже будет более честно)
Ща сразу не помню как.
Копай в MSDN(и делай это чащче)
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите начинающему в VC / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]