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