wm_close
-
hallo,
ich brauche hilfe, undzwar möchte ich bei einer konsolenanwendung das wm_close event abfangen und bevor das programm beendet wird eine messagebox ausgeben.
danke für die posts
mfg dercoder
-
Willst du bei deinem Programm die WM_CLOSE Nachricht abfangen oder von einem anderen?
-
von meinem programm
-
-
Man braucht dafür gar keine WinMain, das geht auch so:
#include <windows.h> bool closing = false; CRITICAL_SECTION cs; BOOL WINAPI consolehandler(DWORD _event) { switch(_event) { case CTRL_C_EVENT: break; case CTRL_BREAK_EVENT: break; case CTRL_CLOSE_EVENT: EnterCriticalSection(&cs); closing = true; LeaveCriticalSection(&cs); break; case CTRL_LOGOFF_EVENT: break; case CTRL_SHUTDOWN_EVENT: break; } return TRUE; } int main() { SetConsoleCtrlHandler((PHANDLER_ROUTINE)consolehandler, 1); InitializeCriticalSection(&cs); bool t_closing; while (true) { EnterCriticalSection(&cs); t_closing = closing; LeaveCriticalSection(&cs); if (t_closing) break; Sleep(100); } DeleteCriticalSection(&cs); MessageBox(0, "", "", 0); return 0; }
-
geil tausend dank
ich probiers gleich mal aus
-
okay es klappt, allerdings kommt immer ne meldung, das das programm sofort beendet werden muss. geht das auch so wie bei vb mit dem Form.Closing event, das das programm noch eine aktion oder so ausführen darf?