Wieso hat das Window HourGlass?
-
Hi
Ich habe mein eigentliches Projekt mal zusammengestaucht und das kam raus:
#include <conio.h> #include <windows.h> int main(int argc, char* argv[]) { WNDCLASS WindowClass = { CS_OWNDC, DefWindowProc, NULL, NULL, NULL, LoadIcon(NULL, IDI_APPLICATION), LoadCursor(NULL, IDC_CROSS), (HBRUSH)GetStockObject(BLACK_BRUSH), NULL, "Klassenname" }; RegisterClass(&WindowClass); HWND WindowHandle = CreateWindow( WindowClass.lpszClassName, "Title", WS_VISIBLE | WS_POPUP, 800, 600, 256, 256, NULL, NULL, NULL, NULL); while(true) { if(GetAsyncKeyState(VK_ESCAPE) < 0) { break; } } DestroyWindow (WindowHandle); }Beim Original sowie bei dem Angezeigten habe ich IDC_CROSS als Cursor definiert. Wieso habe ich dann im Resultat ein HourGlass?
-
Deine Art WNDCLASSEX zu initialisieren halte ich nicht für sehr gut. Setze lieber alle Attribute einzeln. Höchstwahrscheinlich ist die Reihenfolge falsch und du setzt NULL irgendwo rein, oder ganz etwas anderes.
MfG SideWinder
-
Schlussendlich ist WNDCLASS WindowClass konstant! Und ich habe die Liste aus winuser.h kopieret...
-
Windows wartet noch auf die Antwort auf WM_CREATE. Darum das HourGlass.
-
und wie geht das? ich habe es noch nie nutzen müssen...
-
Wie bitte?
-
Das Fenster hat keine Message-Loop und reagiert nicht aufNachrichten. Wie soll da der Hourglass Cursor weggehen. Das würde er nur, wenn das Fenster die Chance hätte die Mausnachrichten zu bearbeiten.
Versuche mal etwas zu lernen, wie Windows Nachrichten berabeitet und wie Input in GUI Programmen behandelt wird.
-
Meinst du zufälligerweise LRESULT CALLBACK WindowProcedure?
Wie geht diese Funktion, wenn ich kein HourGlass will, aber auch keine anderen Auswirkungen haben möchte?Ich löse alle Input-Informationen über GetAsyncKeyState und GetCursorPos...
-
Soweit ich weiss, muss jedes Fenster eine Window-Procedure haben.
X.DarkForce.X schrieb:
Ich löse alle Input-Informationen über GetAsyncKeyState und GetCursorPos...
Das macht man dann mit Nachrichten, die in der Window-Procedure bearbeitet werden.
MfG, Jochen
-
X.DarkForce.X schrieb:
Meinst du zufälligerweise LRESULT CALLBACK WindowProcedure?
Wie geht diese Funktion, wenn ich kein HourGlass will, aber auch keine anderen Auswirkungen haben möchte?Ich löse alle Input-Informationen über GetAsyncKeyState und GetCursorPos...
Das geht nicht!
Du benötigst in jedem Fall eine Message Loop. Das ahbe ich doch geschrieben.