Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Button nach SetWindowlong(...,GWL_STYLE,...) aktualisieren? (https://www.delphipraxis.net/2468-button-nach-setwindowlong-gwl_style-aktualisieren.html)

janjan 24. Jan 2003 20:08


Button nach SetWindowlong(...,GWL_STYLE,...) aktualisieren?
 
Ich hab nem Button per
Delphi-Quellcode:
SetWindowLong(hButton, GWL_STYLE, TaskbarStyle);
einen neuen 'Style' verpasst. Dummerweise wird der aber erst aktualisiert wenn ich mit dem Cursor über den entsprechenden Button gehe.

UpDateWindow hab ich schon auspobiert, das hilft nicht, hat jemand ne Idee wie das klappen könnte?

Chewie 24. Jan 2003 20:13

Probiers mal mit Refresh bzw. Repaint.

janjan 24. Jan 2003 20:18

ich sollte vielleicht noch erwähnen das das ganze nonvcl ist :)

Chewie 24. Jan 2003 20:43

Ach so. Ich dachte, du meinst die TControl-Methode UpdateWindow, wobei die ja nur Update heißt :shock:
Dann fiele mir auch nur ein, das Auftauchen des Mauszeigers über dem Button zu simulieren.

Luckie 24. Jan 2003 21:28

Zitat:

Certain window data is cached, so changes you make using SetWindowLong will not take effect until you call the SetWindowPos function. Specifically, if you change any of the frame styles, you must call SetWindowPos with the SWP_FRAMECHANGED flag for the cache to be updated properly.

janjan 24. Jan 2003 22:04

@Luckie:

danke für den Hinweis. Ich habs erstmal so probiert:

Delphi-Quellcode:
SetWindowPos(hButton, 0,0,0,0,0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or   SWP_NOACTIVATE or SWP_DRAWFRAME);
Bei den meisten Sachen klappt das auch, nur bei Buttons nicht. Da muß man dann das hier machen:

Delphi-Quellcode:
InvalidateRect(hButton, 0, TRUE);
btw, wo hast du den Hinweis gefunden? In der SDK-Hilfe? Wenn ja, dann sollt ich mir mal ne neue anschaffen, ich hab immer noch die alte die bei Delphi 4 dabei war :)

Luckie 24. Jan 2003 22:13

Nicht gefunden, gewußt. :wink:

Du benutzt noch das PSDK was bei D4 dabei war? Ist ungefähr so, als wenn du mit einer Reparaturanleitung für den Käfer einen modernen Golf reparieren wolltest. :mrgreen:

MSDN (MS Developers Network)
PSDK zum Downloaden


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 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