VIew Dialog

kerian

Erfahrenes Mitglied
Hallo,

wie kann ich in einer SDI Anwendung die View aus einem
Dialog ansprechen? Will das sich die View neuzeichnet!
 
Du solltest zumindest einen Pointer auf das CView (dann ist's Invalidate) oder aufs CDocument haben.

Bei CDocument heisst der Aufruf UpdateAllViews.

Bei MFC müsstest du über GetFirstDocTemplatePosition und GetNextDocTemplate (in der App) an die einzelnen Documente kommen.
 
Hallo

Das Übergeordnete Fenster des Dialoges ist das MainFrame, und über das MainFrame kann man die View ansprechen.

Code:
CFrameWnd* fWnd;

fWnd = (CFrameWnd*) GetParent();
fWnd->GetActiveView()->Invalidate();

So zeichnet sich die View neu. Um Funktionen der View aus dem Dialog aufzurufen, muss man die Rückgabe von fWnd->GetActiveView() ind die eigene View-Klasse casten.

Ich hoffe, es hilft Dir weiter.
 
Hallo cFuchs ,
ich habe es probiert und es klappt nicht!

Code:
_AFXWIN_INLINE void CWnd::Invalidate(BOOL bErase)
	{ ASSERT(::IsWindow(m_hWnd)); ::InvalidateRect(m_hWnd, NULL, bErase); }

Welche Methode wäre den eleganter?
 
Erstmal danke an alle,
ich habe mir geholfen indem ich eine Message an die View sende und
dann halt RedrawWindow(); aufrufe :)
 

Neue Beiträge

Zurück