Win32-API-Funktion LockWindowUpdate

Grafische Primitive, XbaseParts und Darstellungsfragen allgemein.

Moderator: Moderatoren

Antworten
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2167
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Win32-API-Funktion LockWindowUpdate

Beitrag von Koverhage » Fr, 15. Mär 2019 7:28

Wie kann ich das in einer Xbase++ Anwendung (Express++) verwenden.
Hat jemand ein Bespiel dafür ?
Gruß
Klaus

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11798
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Win32-API-Funktion LockWindowUpdate

Beitrag von AUGE_OHR » Fr, 15. Mär 2019 8:21

moin,

ich frage mich was du mit der API Function

Code: Alles auswählen

LockWindowUpdate(hwnd) 
bzw.

Code: Alles auswählen

SendMessage(hwnd, WM_SETREDRAW, FALSE, 0)
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.
gruss by OHR
Jimmy

Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2167
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Re: Win32-API-Funktion LockWindowUpdate

Beitrag von Koverhage » Fr, 15. Mär 2019 8:49

Was ich machen möchte ?
Den Bildschirmaufbau beschleunigen.
Gruß
Klaus

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7568
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Win32-API-Funktion LockWindowUpdate

Beitrag von Tom » Fr, 15. Mär 2019 9:05

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.
Herzlich,
Tom

Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2167
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Kontaktdaten:

Re: Win32-API-Funktion LockWindowUpdate

Beitrag von Koverhage » Fr, 15. Mär 2019 10:01

Danke Tom, werde mal ein wenig damit spielen.
Gruß
Klaus

Antworten