Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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:


	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:

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 ??

Geschrieben

Das Programm wird gestartet, dann zusätzlich wird des Dialogfenster (CAnalyse) gestartet.

Wenn man dann im Dialogfenster auf BUTTON "Verbinden" klickt wird eine Webseite im Hauptfenster (CE_LearnView)geladen, aber der Dialogfenster (CAnalyse) bleibt offen.

Meine Idee war, das in Dialogfenster (CAnalyse) ein Fortschrittanzeiger gibt. Er bekommt seine Werte von der Klasse CE_LearnVeiw.

Geschrieben
Ist dir der Unterschied klar?

Nicht so ganz.

Die Beispiele, die ich gesehen habe, waren schwer .

Das Dialogfenster wird in MainFrm.cpp erzeugt:

// MainFrm.cpp 


void CMainFrame::OnFileAnalyse() 

{

	CAnalyse Dialog;

	Dialog.DoModal();

}

Ist es das was du mains?

Geschrieben
Nicht so ganz.

Der Unterscheid zwischen Klasse und Instanz ist sehr wichtig für das Verständnis der objektorientierten Programmierung. Vielleicht solltest du nochmal das eine oder andere Tutorial antun.

Ist es das was du mains?
meinst - Ja.

Der Dialog ist eine Autovariable, darum ist es heikel, die Adresse irgendwo zu speichern - du kannst dann kaum mehr sicherstellen, dass jemand einen Zeiger benutzt, nachdem es den Dialog gar nicht mehr gibt.

Am besten wäre es, wenn sich der Dialog in OnInitDialog beim MainFrame "anmeldet" (also seinen this-Zeiger hinterlässt) und sich in OnOK und OnCancel wieder abmeldet.

Dazu braucht der Mainframe natürlich einen Member-Zeiger, in dem er sich die Adresse des Dialogs merken kann.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...