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: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Win32-API-Funktion LockWindowUpdate

Beitrag von Koverhage »

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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Win32-API-Funktion LockWindowUpdate

Beitrag von AUGE_OHR »

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: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Win32-API-Funktion LockWindowUpdate

Beitrag von Koverhage »

Was ich machen möchte ?
Den Bildschirmaufbau beschleunigen.
Gruß
Klaus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Win32-API-Funktion LockWindowUpdate

Beitrag 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.
Herzlich,
Tom
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Win32-API-Funktion LockWindowUpdate

Beitrag von Koverhage »

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