Boolvariable in OnNewDocument setzen?
-
Hi Leute,
werde noch verrückt und zwar ist es eigentlich ganz simpel aber irgendwie doch nicht.
Folgendes Problem:
Ich habe eine SDI Anwendung mit einem Button(In dr Menüleiste). Wenn man diesen Button betätigt frage ich diese Boolsche Variable (m_bDialogFlag) ab ob sie 0 oder 1 ist. Ist sie null öffne Dialog1 ist sie eins öffne Dialog 2.
Nun folgendes ich setze die Boolsche variable auf eins in meiner OnNewDocumentfunktion.Er setzt sie auch auf eins aber sobald er diese Funktion verlassen hat ist meine Bollschevariable immer auf null obwohl ich sie doch auf eins gesetzt habe.Kann mir einer dieses Phänomen erklären...
Ich zweifel schon selbst an mir..
danke für eure hilfe!!!
-
(In dr Menüleiste)
Hab ich noch nie gesehen, Buttons in der Menüleiste (ausser den MDI-Buttons).
Ist sie null
Sie ist nicht null, sondern true oder false.
Es wäre weiterhin sehr hilfreich, wenn Du ein paar Satzzeichen zum richtigen Verständnis verwenden würdest. C++ meckert auch bei jedem kleinen Rechtschreibefehler, also streng dich mal ein wenig an.
Zum Schluss ist es IMMER hilfreich, Abschnitte des Codes zu zeigen, wo die Variable gesetzt, wo sie abgefragt und wo sie deklariert wird.
-
Sorry meinte natürlich Toolbar!
Hier nun der code:
BOOL CSParamDoc::OnNewDocument()
{if (!CDocument::OnNewDocument())
return FALSE;
m_bDialogFlag = 1;
return TRUE;
}Achso dachte jeder würde 0en und 1en verstehn.Dann bräuchte man nicht immer TRUE oder FALSE schreiben.
C u
-
Verstehen schon, aber 'NULL' verwendet man normalerweise für Zeiger.
Ausserdem hast du vergessen, zu erwähnen, wo und wie Du die Variable abfragst!
-
ok hier die abfrage...
if ( (m_bDialogFlag == 0))
{
CParameterDlg paramDlg;
paramDlg.DoModal();
}
if ( (m_bDialogFlag == 1))
{
CFileDlg fileDlg;
fileDlg.DoModal();
}Aber das scheint mir nicht so das problem sondern das meine Bollschevariable nach dem verlassen von OnNewDocument() immer 0 bzw. mir scheint als wären sie nicht initialisiert obwohl ich sie gestzt habe.
hmm?!
-
Tut mir leid, mit Deinen Informationen kann man nichts anfangen. Da dein Problem aber ein Allgemeines ist, womit keine einzige Doc/View-Anwendung funktionieren dürfte, wenn das so wäre, wie du schreibst.
Also muss irgendwo in Deinem Code ein Fehler sein. Möglicherweise überschreibst Du auch irgendwo in einer anderen Routine den Speicherbereich dieser BOOL-Variablen, das kann man, ohne den komplette Code gesehen zu haben, aber nicht spezifizieren.
-
Ein von XXXX Möglichenkeiten:
Ist m_bDialogFlag zufällige mit Steuerelement verknüpft? Und ruft Du irgedwann beim Initialisieren UpdataData auf?