Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Hilfe: Warum kann ich nicht auf mein Textfeld zugreifen !!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
25.07.2002, 17:39 Uhr
~Micha
Gast


Hallo,

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"

void CCaptureDlg::Monitor(char * NewAction)
{
CWnd * pF;
pF = (CWnd *)GetDlgItem (IDC_CAPTURE01) ;
pF -> ShowWindow(SW_HIDE);

MessageBox ( MELDUNG001 , MELDUNG004) ;
}

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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
25.07.2002, 18:55 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Micha,
Stellt sich als Anfang, erst einmal für mich die Frage warum Du an der Stelle

Zitat:
~Micha postete

C++:
CWnd * pF;
pF = (CWnd *)GetDlgItem (IDC_CAPTURE01) ;


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

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.07.2002, 00:06 Uhr
~Tobi
Gast


Erklaer mir mal des mit dem anderen modul genauer!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.07.2002, 08:01 Uhr
~Micha
Gast


Hallo und Guten Morgen,

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.

void CCaptureDlg::Monitor(char * NewAction)
{CWnd * pF;
pF = (CWnd *)GetDlgItem (IDC_CAPTURE01) ;
pF -> ShowWindow(SW_HIDE);
MessageBox ( MELDUNG001 , MELDUNG004) ;
}

Danke für weitere Tipps
Micha.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.07.2002, 08:31 Uhr
Tommix



Hallo,
Frage:
Wenn Du

Zitat:

MainDlg->Monitor("**********");


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.

Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: