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 nonVCL Style ändern (https://www.delphipraxis.net/35287-nonvcl-style-aendern.html)

stefan2005 4. Dez 2004 21:51


nonVCL Style ändern
 
hi,
ich hab mich seit kurzem mal ein bisschen mit der nonVCL Programmierung beschäftigt und hab nun eine kleine Frage:

Beim Aufruf von CreateWindowEx(...) wird auch der Style (dwStyle: Cardinal) angegeben und oft mit OR verknüpft, z.B. "WS_CHILD or WS_VISIBLE or BS_NOTIFY".
Wie kann man nun diese Style-Beschreiber während der Laufzeit ändern ?

Kann man damit auch zur Laufzeit die Form-Hintergrundfarbe ändern ?

cu,
stefan2005

Pr0g 4. Dez 2004 22:01

Re: nonVCL Style ändern
 
Guck dir mal die Funktionen MSDN-Library durchsuchenGetWindowLong und MSDN-Library durchsuchenSetWindowLong an.

MfG Pr0g

stefan2005 6. Dez 2004 16:19

Re: nonVCL Style ändern
 
danke, es scheint wohl einfach zu sein :-D

aber ist es mit den Styles oder anderweitig irgendwie möglich, die Hintergrundfarbe einer Komponente (z.B. eines Buttons) oder eines Fensters (Forms) zur Laufzeit zu verändern ?

cu,
stefan2005

Luckie 6. Dez 2004 16:21

Re: nonVCL Style ändern
 
Nein, mit den Styles nicht.

stefan2005 6. Dez 2004 16:25

Re: nonVCL Style ändern
 
hi,
ääähhh und wie ist es dann möglich die Hintergrundfarbe zu ändern ?

cu,
stefan2005

Luckie 6. Dez 2004 16:35

Re: nonVCL Style ändern
 
also, wenn du eine Dialog Ressource hast, dann guck dir mal MSDN-Library durchsuchenWM_CTLCOLORDLG an. Bei einem Button ist es nicht so einfach, den musst du komplett selber zeichen, also subclassen. Es gibt zwar die Nachricht MSDN-Library durchsuchenWM_CTLCOLORBTN, aber
Zitat:

By default, the DefWindowProc function selects the default system colors for the button. Buttons with the BS_PUSHBUTTON, BS_DEFPUSHBUTTON, or BS_PUSHLIKE styles do not use the returned brush. Buttons with these styles are always drawn with the default system colors. Drawing push buttons requires several different brushes-face, highlight and shadow-but the WM_CTLCOLORBTN message allows only one brush to be returned. To provide a custom appearance for push buttons, use an owner-drawn button.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 Uhr.

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