Funktion bei Program start einmal ausführen?
-
Wie führe ich eine Funktion beim Programmstart einmal aus?
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{Funktion(); //soll nur einmal beim start ausgeführt werden!!
}
-
Indem Du Dir ein Flag setzt. Oder ein globales Objekt verwendest...
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { static bool bDone = false; if (!bDone) { Funktion(); //soll nur einmal beim start ausgeführt werden!! bDone = true; } }
Oder Du verwendest Storage, der sich nur auf Dein Fenster bezieht, wenn die Operation nur bei "Erzeugung" des Fensters ausgeführt werden soll.
-
Warum sollte die Funktion dann innerhalb der WndProc aufgerufen werden und nicht einmalig beim Start in der WinMain?
-
Danke für die Antworten.
Beide Lösungen mit bool und mit der winmain sind für meine Zwecke bestens geeignet.
Bin gestern irgendwie nicht drauf gekommen, bzw es funktionierte nicht so wie gedacht.Benötige das zur erzeugung eines feldes zum programstart.
-
-
WM_NCCREATE und 1 bzw. TRUE zurückgeben