![]() |
[Win32 API] Trotz setzen von hCursor nur die Sanduhr
Hallo.
Für das Win32-Windowframework von Andorra 2D erzeuge ich ein Fenster via Windows-API. Der darüber angezeigte Mauszeiger ist jedoch immer ein "Sanduhr"-Zeiger, bis ich den Fensterbereich einmal verlassen habe. Hier ist mein Fenstererzeugungscode:
Delphi-Quellcode:
Den gesamten Sourcecode gibt es hier:
FWnd.cbSize := SizeOf(TWndClassEx);
FWnd.style := CS_HREDRAW or CS_VREDRAW or CS_DBLCLKS; FWnd.lpfnWndProc := FWndProc; FWnd.cbClsExtra := 0; FWnd.cbWndExtra := 0; FWnd.hbrBackground := CreateSolidBrush(0); FWnd.lpszMenuName := nil; FWnd.lpszClassName := 'WndClass'; FWnd.hIconSm := 0; FWnd.hInstance := hInstance; FWnd.hIcon := LoadIcon(hInstance, MAKEINTRESOURCE(100)); FWnd.hCursor := LoadCursor(0, IDC_ARROW);; RegisterClassEx(FWnd); FHandle := CreateWindowEx(0, 'WndClass', PChar(Title), WndStyle, 0, 0, AProps.Width, AProps.Height, 0, 0, hInstance, nil); ![]() Vielleicht kann sich das mal jemand der sich mit der Win32-API auskennt ansehen. Danke, Andreas |
Re: [Win32 API] Trotz setzen von hCursor nur die Sanduhr
|
Re: [Win32 API] Trotz setzen von hCursor nur die Sanduhr
Vielen Dank, das hat mir geholfen.
Mein jetziger Code:
Delphi-Quellcode:
Nochmal vielen Dank!
FHCur := LoadCursor(0, IDC_ARROW);
FWnd.cbSize := SizeOf(TWndClassEx); FWnd.style := CS_HREDRAW or CS_VREDRAW or CS_DBLCLKS; FWnd.lpfnWndProc := FWndProc; FWnd.cbClsExtra := 0; FWnd.cbWndExtra := 0; FWnd.hbrBackground := CreateSolidBrush(0); FWnd.lpszMenuName := nil; FWnd.lpszClassName := 'WndClass'; FWnd.hIconSm := 0; FWnd.hInstance := hInstance; FWnd.hIcon := LoadIcon(hInstance, MAKEINTRESOURCE(100)); FWnd.hCursor := FHCur; RegisterClassEx(FWnd); FHandle := CreateWindowEx(0, 'WndClass', PChar(Title), WndStyle, 0, 0, AProps.Width, AProps.Height, 0, 0, hInstance, nil); SetCursor(FHCur); Edit: In der Ereignissverarbeitungsprozedur sollte man noch ein
Delphi-Quellcode:
einfügen.
case
WM_SETCURSOR: SetCursor(FHCur); Edit 2: Noch besser ist folgender Code:
Delphi-Quellcode:
case
WM_SETCURSOR: if (lParam and $0000FFFF) = (HTCLIENT) then Windows.SetCursor(FHCur) else Result := DefWindowProc(hWnd, uMsg, wParam, lParam); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz