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

Du brauchst an dieser Stelle die Instanz von CAnalyse, die du angezeigt hast, oder eine Referenz oder einen Zeiger darauf. Nur darüber kannst du eine Methode aufrufen.

Wo wird denn dieser Dialog erzeugt?

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

Du willst hier keine Daten von Klasse A zu Klasse B übertragen, sondern von Instanz von Klasse A zu Instanz von Klasse B. Ist dir der Unterschied klar?

Wo im Code wird dieser Dialog erzeugt?

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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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