ich kann das nicht verstehen es ist bestimmt einfach: Ich habe mein Textfeld mit der ID "IDC_CAPTURE01" ok. ich definiere in meine "CCaptureDlg.cpp" Datei noch eine Funktion (Quelltext folgt) Namens "Monitor"
Diese --> "void Monitor(char* NewAction);" Deklaration mache ich auch in die "CCaptureDlg.h" Datei. Ich kann Problemlos compilieren.
Wenn ich diese Funktion von eine anderes Modul aufrufe bekomme folgendes Fehlerfenster mit dem Hinweis: ... Der Vorgang read könnte nicht auf dem speicher ... etc
Verwende ich die gleichen Zeilen in eine z.B. OnClearFenster()-Funktion die vom Assistenten generiert wurde bekomme ich einen Pointer zu diesem Textfeld und kanns ansprechen. CWnd * pF; pF = (CWnd *)GetDlgItem (IDC_CAPTURE01) ; pF -> ShowWindow(SW_HIDE);
Was mache ich falsch, was habe ich nicht deklariert ??? Danke Micha
castest? GetDlgItem gibt doch schon einen Zeiger auf CWnd zurück. -- "Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."
das andere Modul ist eine *.cpp Datei und beinhaltet meine Berechnungsroutinen. Das Ergebnis möchte ich dann auf meinen Dialog Fenster und im Textfeld "IDC_CAPTURE01" ausgeben. In diesem Modul habe ich global folgende Eintragungen: #include "stdafx.h" #include "SerTfer.h" #include "Sortiere.h" #include "CCapture.h" #include "CCaptureDlg.h" #include "meldungen.h" CCaptureDlg * MainDlg;
Nachdem ich mein Ausgabeergebnis habe tue ich mit folgendem Aufruf meine Monitor Funktion aufrufen: MainDlg->Monitor("**********");
Leider bekommt dann die Funktion den Falschen Pointer für das Element IDC_CAPTURE01 und ich habe einen Abbruch.
aufrufst, dann "läuft" der Dialog bereits als nichtmodales Fenster, oder? Ansonsten mal links auf "VC++ / MFC" klicken und dort unter Beispiel zum Erzeugen eines nichtmodalen Dialoges nachsehen.