VC++Aus eigener Klasse auf Steuerelement zugreifen

Ich programmiere mit Visual C++ 2010 Express.
Dabei benutze ich das Net Framework und erstelle Windows Anwendungen.
Folgendes Problem:
Wenn ich z.B. ein Label erstelle und aus Form.h darauf zugreife (z.B. Text verändere),funktioniert alles bestens. Wenn ich aber eine Klasse erstelle (also eine extra Header-Datei) und versuche von dort aus den Text zu verändern, kann ich nicht auf das Label zugreifen (nicht deklarierter Bezeichner). Egal, ob ich Form.h includiere oder nicht, die Steuerelemente werden nicht erkannt.
Kann mir bitte jemand sagen, wie ich auf Steuerelemente aus einer anderen Header-Datei zugreifen kann?

Hast du die Variablen als public: vereinbart? Ansonsten weiss ich wirklich nicht, wie es gehen sollte. Ich programmiere fast nur mit den vordeklarierten Klassen.
Hoffe, irgendjemand kann dir helfen.

Lieber Magnus, ich kann dir nicht weiterhelfen, aus folgendem Grund:
ich arbeite zwar auch mit VC2010 Pro und 2005 und habe meine Probleme, jedoch arbeite ich ausschließlich mit C++ MFC.
Klar, dass die Express-Version nicht alles 100% kann;
Ehrlich gesagt, ich weiß nicht was du unter Label und Steierelemente verstehst, etwa wie CButton, CEdit…etc.
oder für Einträge, bzw. Menü- oder Toolbar-Optionen?
Ich glaube, mit den Header-Dateien hat das wenig zu tun, nun gut, ich hoffe, daß dir jemand auf die Beine Helfen kann.
Tschüüß
Günther

Hallo Magnus68#es tut mir leid, aber ich kann dir leider nicht weiterhelfen.

Gruss
Dieter Wolf

Wenn du in Visual Studio ein Label deklarierst, dann ist dieses „private“ zur Forms Klasse. Du kannst also von aussen gar nicht drauf greifen.
Du brauchst also erstmal eine „public“ Zugriffsfunktion:
z.B.
void SetLable(String^ text) { label1->Text = text; } ;

Jetzt brauchst du noch einen Pointer auf die Forms Klasse. Standardmäßig bekommst du den nicht. Der Wizard legt nämlich folgendes an:

Application::Run(gcnew Form1());

Du solltest dir als erstes überlegen, was du genau willst.
Welche zusätzlichen Klassen brauchst du (wenn überhaupt)?
Was sollen die machen?
Wie soll deine Anwendung bedient werden?

Es ist übringens ganz schlechter Stil Code in die Header Datei zu schreiben, auch wenn dies der Wizard so macht.

Du solltest in der Form.h eine public-Methode erstellen, in der du z.B. das Label mit dem als Argument übergebenen Text beschriftest. Dein Label gehört zu den Daten der Klasse Form und es sollte nicht direkt von anderen Klassen verändert werden, sondern nur über Methoden. Daten einer Klasse sollen immer als private deklariert werden. Anschließend deklarierst du in der anderen Klasse ein Objekt der Klasse Form und greifst durch Objekt.Methode auf die in Form.h deklarierte Methode.
Ich hoffe, ich konnte dir soweit helfen.