Hilfe: Anfänger
-
Ich jetzt folgendes gemacht:
#include "headerDateiVonNeuesFenster.h"
.......
void AltesFenster::Button()
{
CheaderDateiVonNeuesFenster dlg;
dlg.DoModal();
}funktioniert aber nicht...
Was habe ich falsch gemacht???
-
Würd mich auch interessieren:
bei mit siehts so aus und er öffnet den falschen dialog:
void CTankyardDlg::OnBnClickedAbout()
{
About dlg;
dlg.DoModal();
}
-
Hi,
Normalerweise müsste einCMyDlg dlg; dlg.DoModal();
reichen. Ich verstehe nicht, warum es bei Euch nicht klappt. Seht Euch mal den Konstruktor von CMyDlg an. Vielleicht macht er deshalb Ärger.
Ihr könntet aber auch versuchen, den Dialog als Memeber zu deklarieren oder als Pointer. Vielleicht bringt das ja was. (Is ne ziemlich dilettantische Anwort, aber vielleicht besser als nix.)
Ciao
-
-
Erstellt eine Resource (Dialog) und eine Klasse dazu.
z.B. Name: CmeinDlg
Somit habt ihr 2 Dateien meinDlg.cpp und meinDlg.h
#include meinDlg.h // In einer Buttonfunktion CmeinDlg meinDlg; meinDlg.DoModal();
"Geht nicht" gibt es nicht.
Wenn etwas nicht geht dann bitte den Fehler posten. Vorher Debuggen
-
Hallo zusammen,
euer Hauptproblem dürfte wohl auch sein, dass ihr die Variable für euren neuen Dialog im lokalen Scope der Behandlungsroutine für diesen Button erstellt - also quasi "temporär". Die Deklaration
CEinDlg aDlg;
sollte in den Header eures übergeordneten Dialoges bzw. der "Startklasse". Sonst macht es es nur ganz furchtbar schnell *blitz* und der schöne Dialog wird für die relative kurze Zeit von ein paar Millisekunden am Bildschirm angezeigt. Und das war es dann ;)...
Grüße, Volle.
-
Volle:
Das ist falsch.
Hierbei handelt es sich um einen Modalen Dialog.
DoModal kehrt erst zurück wenn der Dialog geschlossen wird und somit wie die Klasse auf den Stack erst gelöscht wenn der Dialog geschlossen wird.
Im Gegensatz zu einem Modless-Dialog bei der Create sofort nach erstellung zurückkehrt.
-
So, ich schreibe jetzt mein Programm
#include "stdafx.h" #include "Deduct.h" #include "Lieferantenstamm.h" #include "Lieferdaten.h" <= Header datei von vorhandenes Dialog .... void Lieferantenstamm::OnWaehlen() { CLieferdaten dlg; dlg.DoModal(); }
Die fehler sind folgende:
Lieferantenstamm.cpp(213) : error C2065: 'CLieferdaten' : nichtdeklarierter Bezeichner
Lieferantenstamm.cpp(213) : error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'dlg'
Lieferantenstamm.cpp(213) : error C2065: 'dlg' : nichtdeklarierter Bezeichner
Lieferantenstamm.cpp(214) : error C2228: Der linke Teil von '.DoModal' muss eine Klasse/Struktur/Union seinWas ist falsch???
Danke an alle die was geschrieben haben...
-
In welcher headerdatei befindet sich die Klasse CLieferdaten ?
-
Hi zusammen,
ups, das stimmt natürlich. Da habe ich wohl Mist verbreitet... *schäm*
Sorry!
Grüße, Volle.
-
Also, in Lieferdaten.h befindet sich die Klasse (class Lieferdaten : public CDialog)
aber CLieferdaten finde ich nicht....
Danke für eure Geduld...
-
CLieferdaten dlg; dlg.DoModal();
Hier möchtest du einen Dialog öffnen der die Klasse CLieferdaten hat.
Wenn du sagst, daß es diese Klsse nicht gibt dann wird er sie auch nicht finden und deshalb
Lieferantenstamm.cpp(213) : error C2065: 'CLieferdaten' : nichtdeklarierter BezeichnerLieferdaten lieferdatendlg; lieferdatendlg.DoModal();
Du solltest aber erstmal die Grundbegriffe in C++ lernen bevor du mit Visualisierung weiter machst.
-
Danke Unix-Tom, es scheint zu funktionieren
-
[ Dieser Beitrag wurde am 13.01.2003 um 11:27 Uhr von Erhard Henkes editiert. ]