Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Wert von WS_WX_TRANSPARENT (https://www.delphipraxis.net/156470-wert-von-ws_wx_transparent.html)

Shark99 2. Dez 2010 23:56

Wert von WS_WX_TRANSPARENT
 
Kann mir jemand den Wert von WS_WX_TRANSPARENT verraten?

Wird z.B. hier verwendet:

http://www.swissdelphicenter.ch/de/showcode.php?id=264

s.h.a.r.k 3. Dez 2010 00:03

AW: Wert von WS_WX_TRANSPARENT
 
Ich glaube eher es handelt sich hier um einen Schreibfehler! Das soll wohl die hier sein
Delphi-Quellcode:
WS_EX_TRANSPARENT = 0x00000020,
-- statt dem zweiten W ein E. Findet man in der Windows-Unit.

Bummi 3. Dez 2010 00:04

AW: Wert von WS_WX_TRANSPARENT
 
ich kenn die Implementierung und dern Konstanten nicht, der übliche Code an dieser Stelle sieht so aus
Delphi-Quellcode:
   exStyle := GetWindowLongA(handle, GWL_EXSTYLE);
   if (exStyle and WS_EX_LAYERED = 0) then
    SetWindowLong(handle, GWL_EXSTYLE, exStyle or WS_EX_LAYERED);

s.h.a.r.k 3. Dez 2010 00:06

AW: Wert von WS_WX_TRANSPARENT
 
@Bummi: Geht der auch unter Windows 98/2000? Der Code von den Schweizern geht angeblich unter den genannten Systemen.

Bummi 3. Dez 2010 00:10

AW: Wert von WS_WX_TRANSPARENT
 
kalt erwischt ...
mit Transparenzen habe ich mich erst seit XP beschäftigt, ich muß passen.

s.h.a.r.k 3. Dez 2010 00:13

AW: Wert von WS_WX_TRANSPARENT
 
Yeha :mrgreen: Schadefreue ist toll -- nein, Spass! Nur irgendwo muss ja der Unterschied zwischen den beiden Codeschnipsel liegen, oder? Daher die Frage.

Bummi 3. Dez 2010 08:21

AW: Wert von WS_WX_TRANSPARENT
 
ab Windows 2000

To create a visible-through (layered) window, we need to set the extended style WS_EX_LAYERED, and to make the window clicked-through, we need the WS_EX_TRANSPARENT extended style.

DeddyH 3. Dez 2010 08:28

AW: Wert von WS_WX_TRANSPARENT
 
Zitat:

Zitat von Bummi
Delphi-Quellcode:
   exStyle := GetWindowLongA(handle, GWL_EXSTYLE);
   if (exStyle and WS_EX_LAYERED = 0) then
    SetWindowLong(handle, GWL_EXSTYLE, exStyle or WS_EX_LAYERED);

Wozu die If-Abfrage?

himitsu 3. Dez 2010 08:31

AW: Wert von WS_WX_TRANSPARENT
 
http://msdn.microsoft.com/en-us/library/ff700543.aspx
die $00000020 stimmt und da unten steht auch was von Win2000

Wenn man's genauer wissen will, dann müßte man mal schauen, ob es ein Win98-PSDK/SDK gibt und dort reingucken.

Bummi 3. Dez 2010 08:52

AW: Wert von WS_WX_TRANSPARENT
 
@DeddyH
Zitat:

Wozu die If-Abfrage?

um SetWindowLong nur aufzurufen wenn es nötig ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz