Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Erstaunliches Verhalten

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
07.04.2004, 12:28 Uhr
(un)wissender
Niveauwart


Moin!

Es geht um einen Dialog.
WM_CLOSE wird nur gesendet, wenn ich ein Objekt von std::ofstream deklariere.
Lasse ich es weg, wird WM_CLOSE nicht gesendet und mein Dialog ist nicht über das Kreuz schliessbar.
Außerdem kann mein Dialog dann auch nicht mehr verschoben werden.

Nun die Frage: was zum Teufel kann das bedeuten?
Es kann ja wohl nicht am std::ofstream liegen, da wird wohl ein Seiteneffekt dieses Verhalten erzeugen, habe ihr eine Idee?

Dialogprozedur:

C++:
bool CALLBACK aboutDialogProc(HWND hwnd, UINT message,
                              WPARAM wParam, LPARAM lParam)
{
  
    std::ofstream out;  //Warum muss das sein!!??    
    switch(message)
    {
    case WM_INITDIALOG:
        return true;
    case WM_CLOSE:
        
        EndDialog(hwnd, 0);
        return true;  
    case WM_COMMAND:
        switch(LOWORD(wParam))
        {
        case IDOK:
        case IDCANCEL:
            EndDialog(hwnd, 0);
            return true;      
        }
    }
    
    return false;
}



Auszug aus der Resourcendatei

Code:
[...]
IDD_DIALOG2 DIALOGEX 0, 0, 186, 90
STYLE  DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP |
    WS_CAPTION | WS_SYSMENU
CAPTION "Info"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,72,64,50,14
    ICON            IDR_ICON1,IDC_STATIC,8,8,20,20
    CTEXT           "DasSpiel",IDC_STATIC,64,8,69,8
    CTEXT           "von mir",IDC_STATIC,64,24,70,8
    LTEXT           "2004",IDC_STATIC,88,40,17,8
END
[...]


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
07.04.2004, 12:50 Uhr
RedEagle




Zitat:
(un)wissender postete
std::ofstream out; //Warum muss das sein!!??



Würde ich auch gerne wissen, jedenfals ist es nicht für den Dialog wichtig.

Wenn du die Zeile weg machst, müsste es funktionieren
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
07.04.2004, 13:34 Uhr
(un)wissender
Niveauwart


Nee, müsste es nicht!
Eigentlich sollte es auch mit dieser Zeile nicht funktionieren, da...BOOL != bool
Die Signatur stimmt nicht mit der in der MSDN geforderten überein.
Hier ist BOOL = int.
Ich habe aber C++ bool genommen, das hat zu diesem sehr seltsamen Verhalten geführt.
Nich jeder C++ Complier definiert bool als int, manche offensichlich auch als etwas anderes.

Also, lieber (un)wissender,

C++:
if (lesen) fehler--;


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 07.04.2004 um 13:34 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.04.2004, 14:28 Uhr
RedEagle



Und wofür ist das wichtig?? : std::ofstream out;
Ich habe diese Zeile noch NIE in nen Fenster eingebaut (Habe bisher nur 1 geschrieben )
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.04.2004, 15:03 Uhr
(un)wissender
Niveauwart



Das ist für gar nichts wichtig in diesem Zusammenhang!
Ich hatte ja schon gesagt, dass das wohl bloß einen seltsamen Seiteneffekt erzeugt hatte, dass die Dialogprozedur trotz falscher Signatur funktionierte.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


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: