WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Как из CMainFrame получить указатель на CView?

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Как из CMainFrame получить указатель на CView?
Bober опубликован 06-04-2001 20:07 MSK   Click Here to See the Profile for Bober   Click Here to Email Bober  
Извиняйте за глупые вопросы. Новичокс-с-с. Но уж очень хочется разобраться.
Я пытался из CMainFrame получить Документ - и не смог:
1. CToolDoc* pDoc = (CToolDoc*)GetActiveDocument();
ASSERT_VALID(pDoc) - не работает.

2. CToolDoc* pDoc=dynamic_cast<CToolDoc*>(GetActiveDocument());
ASSERT_VALID(pDoc) - не работает

3. CMainFrame* pWnd=dynamic_cast<CMainFrame*>(AfxGetMainWnd());
CToolDoc* pDoc=dynamic_cast<CToolDoc*>(pWnd->GetActiveDocument());
ASSERT_VALID(pDoc) - не работает.

4. А вот это работает:
CToolApp* pApp=(CToolApp*)AfxGetApp();
ASSERT_VALID(pApp)

Вид тоже не смог получить. Enable RTTI в Settings установил. Не помогает. Даже пыль с монитора стер -все равно не помогает! Хелп, плиз!

gecky опубликован 08-04-2001 11:56 MSK     Click Here to See the Profile for gecky  Click Here to Email gecky     
Привет. Попробуй так:

CMainFrame* p_main_frame= (CMainFrame*)AfxGetApp()->m_pMainWnd;
CChildFrame* p_child_frame = (CChildFrame*)p_main_frame->GetActiveFrame();
CYourView* p_view = (CYourView*) p_child_frame->GetActiveView();

В итоге из любого места программы получишь указатель на активный View.
Если не трудно, посмотри вопрос "элементы в CDialog". Прям не знаю чё делать.

Bober опубликован 08-04-2001 20:46 MSK     Click Here to See the Profile for Bober  Click Here to Email Bober     
Бли-и-и-ин, работает!
Спасибо, дружище!!!

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.