CHallo.
Am Anfang deiner WndProc wird immer, warum auch immer, das gemacht:
hbitmap = LoadBitmap(NULL, (char*)OBM_CHECK);
Dieses Object/Handle wird nie in deinem Programm zerstört, wodurch dein Programm schon nach kürzester Zeit tausende von GDI-Objecten verwalten muss (TaskManager->Spalten auswählen->GDI-Objecte, da siehst es).
Das eine DeleteObject(hbitmap) bei WM_DESTROY wird nur aufgerufen, wenn das Fenster zerstört wird, aber bei jeder Nachricht wird eins erzeugt, all right?!
MfG, obe
EDIT: ah, sollte wohl nächstes mal alles lesen, bevor ich lospresche.
PS: Der TaskManager hilft beim Fehlerfinden.