MFC CView ruft Finktion in CDialog

Dieses Thema MFC CView ruft Finktion in CDialog im Forum "Windows XP Forum" wurde erstellt von Don_Pazo, 12. Jan. 2006.

Thema: MFC CView ruft Finktion in CDialog Hallo und gutes neues Jahr, ich habe eine MFC Anwendung, die als Basis-klasse CHtmlView hat. Im Programm gibt es...

  1. 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 !!
     
Die Seite wird geladen...

MFC CView ruft Finktion in CDialog - Ähnliche Themen

Forum Datum
VNCViewer einstellen Netzwerk 27. Juni 2005
Visuall C++ Zeiger: CMainFrame auf CView Webentwicklung, Hosting & Programmierung 6. Jan. 2004
Outlook 2013 ruft lauter E-Mails mit einer Größe von 800 Byte auf Microsoft Office Suite 1. Okt. 2014
Wann wird COA überprüft Windows XP Forum 23. März 2012
Datenträgerverschlüsselung vs. Datenträgerprüftools Windows XP Forum 25. Feb. 2010