MFC CView ruft Finktion in CDialog

  • #1
D

Don_Pazo

Bekanntes Mitglied
Themenersteller
Dabei seit
16.09.2005
Beiträge
112
Reaktionspunkte
0
Hallo und gutes neues Jahr,

ich habe eine MFC Anwendung, die als Basis-klasse CHtmlView hat. Im Programm gibt es zusetzlich einen Dialogfenster (CAnalyse). Wenn des Dialogfenster geöffnet ist, wird einen Link zusammengebaut und im CE_LearnView geöffnet mit:
 
Code:
 CView *ptr = ((CFrameWnd *)AfxGetMainWnd())->GetActiveView(); 

    if( ptr && ptr->IsKindOf(RUNTIME_CLASS(CE_LearnView) )) 
    { 
        ((CE_LearnView *)ptr)->Aktualisieren(strLink); 
    } 
 

!!! DER DIALOGFENSTER IST IMMER NOCH OFFEN !!!
Das Dialogfenster hat eine Fortschrittanzeige. Die Werte in der Fortschrittanzeige setze ich mit der Funktion:
Code:
void CAnalyse::FortschritanzeigeSetzen(int Position) 
{ 
   m_cFortschrittsanzeige.SetPos(Position); 
} 
Wie könnte ich die Funktion FortschritanzeigeSetzen(int Position) im CAnalyse (Dialogfenster) von der Klasse CE_LearnView aufrufen ??
 
  • #2
Im einfachsten Fall könntest Du in der Funktion->Aktualisieren' als zweiten Parameter einen Zeiger auf CAnalyse hinzufügen. Aufruf dann z.B. mit

((CE_LearnView*)ptr)->Aktualisieren(strLink, this);

Dann kannst Du auf die (öffentlichen) Funktionen des Dialogs zugreifen. Du musst natürlich darauf achten, dass der CAnalyse-Dialog noch existiert, wenn Du->FortschrittanzeigeSetzen' aufrufst (z.B. eine zusätzliche Logik einbauen,  den Dialog während des Ladens der Seite grundsätzlich nicht schließen (lassen) oder das Dialogfenster nur einmal mit Create erzeugen und dann bloß verstecken/anzeigen).
 
  • #3
Danke für die Hilfe Dings

Ich habe in CE_LearnView (E_LearnView.cpp) zusetzlich den this Zeiger in der Funktion Aktualisiere eingefügt:
Code:
((CE_LearnView*)ptr)->Aktualisieren(strLink, this);

und dann bei der Funktion:
Code:
void CE_LearnView::Aktualisieren(CString Link, CAnalyse* ptr){
	CAnalyse* ptrAnalyse = ptr;
	
	ptrAnalyse->FortschrittanzeigerSetzen(80);
}

es klapt prima. Danke noch mal !!
 
Thema:

MFC CView ruft Finktion in CDialog

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben