Seite 1 von 1
Win32-API-Funktion LockWindowUpdate
Verfasst: Fr, 15. Mär 2019 7:28
von Koverhage
Wie kann ich das in einer Xbase++ Anwendung (Express++) verwenden.
Hat jemand ein Bespiel dafür ?
Re: Win32-API-Funktion LockWindowUpdate
Verfasst: Fr, 15. Mär 2019 8:21
von AUGE_OHR
moin,
ich frage mich was du mit der API Function
bzw.
machen willst
Xbase++ benutzt einen Presentation-Space welchen man durch o:lockPS() anfordern kann.
Windows nutzt den DC (Device Context) den man mit den API Function GetDC / GetDCEx anfordern kann.
die API Function LockWindowUpdate arbeitet nun mit hDC also denke ich nicht das man damit den Presentation-Space sperren kann.
p.s. das "malen" im hDC direct ist viel schneller als in oPS ... es muss ja alles noch an den hDC weitergereicht werden
vermutlich sind deshalb die XbParts so viel langsamer ... und beim "um-kopieren" tritt dann das 4 GB Problem auf.
Re: Win32-API-Funktion LockWindowUpdate
Verfasst: Fr, 15. Mär 2019 8:49
von Koverhage
Was ich machen möchte ?
Den Bildschirmaufbau beschleunigen.
Re: Win32-API-Funktion LockWindowUpdate
Verfasst: Fr, 15. Mär 2019 9:05
von Tom
Das hast Du über die Methode :LockUpdate() in Xbase++ nativ zur Verfügung, die jedes von XbpWindow() abgeleitete Klassenobjekt kennt. oDialog:LockUpdate(.T.) sperrt den Dialog für die Aktualisierung, oDialog:LockUpdate(.F.) gibt ihn wieder frei (woraufhin mindestens ein oDialog:InvalidateRect() ausgelöst werden muss). Achtung, das ist nicht kaskadierend. Ein :LockUpdate(.F.) löst für das Klassenobjekt alle Locks, auch für die Kinder. Funktioniert einwandfrei - aber. Du musst ein bisschen aufpassen, gerade im Zusammenspiel mit eXpress++. Einfach mal ausprobieren.
Re: Win32-API-Funktion LockWindowUpdate
Verfasst: Fr, 15. Mär 2019 10:01
von Koverhage
Danke Tom, werde mal ein wenig damit spielen.