Schlagschatten für Fenster/Objekte?
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Schlagschatten für Fenster/Objekte?
Huhu.
Es muß eine Möglichkeit (ab Windows 2000) geben, Fenster mit einem Schlagschatten zu versehen. Ich finde die API-Funktion(en) dafür aber nicht. Kennt sie jemand?
Es muß eine Möglichkeit (ab Windows 2000) geben, Fenster mit einem Schlagschatten zu versehen. Ich finde die API-Funktion(en) dafür aber nicht. Kennt sie jemand?
Herzlich,
Tom
Tom
-
- Rekursionen-Architekt
- Beiträge: 116
- Registriert: Fr, 23. Sep 2005 16:07
- Wohnort: Bad Oldesloe
- Kontaktdaten:
Hallo Tom.
Schau doch mal hier nach. http://msdn.microsoft.com/library/deu/d ... nlp_rp.asp
Gruß
Thomas
Schau doch mal hier nach. http://msdn.microsoft.com/library/deu/d ... nlp_rp.asp
Gruß
Thomas
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Tom,
öhm, was ist ein Schlagschatten?
öhm, was ist ein Schlagschatten?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
Hi Tom,
danke für die Mühe, aber ich kann keinen halbtransparenten Schatten erkennen. Brille habe ich geputzt, hat aber nicht geholfen.
Vielleicht liegt es am Firefox.
Egal, war nur ne Frage so am Rande. Mach Dir keine weitere Mühe.
danke für die Mühe, aber ich kann keinen halbtransparenten Schatten erkennen. Brille habe ich geputzt, hat aber nicht geholfen.
Vielleicht liegt es am Firefox.
Egal, war nur ne Frage so am Rande. Mach Dir keine weitere Mühe.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Manfred
- Foren-Administrator
- Beiträge: 21199
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 67 Mal
das hatte ich vermutete, dass es sowas ist, aber ich habe es zum Verrecken nicht gesehen. Altersmuff.....
Hm, mit den Tools geht das auf Textbasis. Schade
Hm, mit den Tools geht das auf Textbasis. Schade
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
- Lewi
- 1000 working lines a day
- Beiträge: 830
- Registriert: Di, 07. Feb 2006 14:10
- Wohnort: Hamburg
- Danksagung erhalten: 2 Mal
Die Anzeige von Schlagschatten für Menüs ist unter XP einstellbar. Das es Schlagschatten auch für Dialoge bzw. Fenster geben soll, ist mir neu. Zumindest habe dafür noch keine Einstellung unter Windows finden können.
Wird über XP die Anzeige von Schlagschatten aktiviert, gilt dies auch für xbase-Programme.
Wird über XP die Anzeige von Schlagschatten aktiviert, gilt dies auch für xbase-Programme.
Zuletzt geändert von Lewi am Mi, 15. Feb 2006 10:05, insgesamt 1-mal geändert.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Danke, Boddy, das waren sie.
Also, API-Funktionen gefunden. Das ist der Korpus:
Aufruf:
Das funktioniert auch ganz gut, aber offensichtlich "erben" alle im Folgenden entstehenden Fensterobjekte diesen Style, und das ist nicht im Sinne des Erfinders. Sieht jemand den Fehler?
Edit: Außerdem verlangsamt sich die Applikation (Fensteraufbau) spürbar. Irgendwas ist da noch im Busch...
Also, API-Funktionen gefunden. Das ist der Korpus:
Code: Alles auswählen
#define GCL_STYLE -26
#define CS_DROPSHADOW 0x20000
DLLFUNCTION GetClassLongA( hWnd, nIndex ) ;
USING STDCALL FROM USER32.DLL
DLLFUNCTION SetClassLongA( hWnd, nIndex, dwNewLong ) ;
USING STDCALL FROM USER32.DLL
FUNCTION SetDropShadow(nHandle)
LOCAL nNewStyle
IF !"Windows XP" $ Os() // läuft nur mit XP
RETURN nil
ENDIF
SetClassLongA(nHandle,GCL_STYLE,0) // Reset des Styles
nNewStyle := GetClassLongA(nHandle,GCL_STYLE)+CS_DROPSHADOW // Dropshadow-Wert ermitteln
SetClassLongA(nHandle,GCL_STYLE,nNewStyle) // Dropshadow setzen
RETURN nil
Code: Alles auswählen
... neues Fensterobjekt erzeugen
nHandle := oDlg:GetHwnd()
SetDropShadow(nHandle)
oDlg:Show()
Edit: Außerdem verlangsamt sich die Applikation (Fensteraufbau) spürbar. Irgendwas ist da noch im Busch...
Herzlich,
Tom
Tom
-
- Rekursionen-Architekt
- Beiträge: 128
- Registriert: Mi, 26. Okt 2005 18:41
- Wohnort: Berlin
- Kontaktdaten:
Hi Tom,
bei deinem Code habe ich ein ganz anderes Problem. Der Rahhmen verschwindet von alleine wieder. Auf den folgenden ist er auch nicht zu sehen.
Wenn das bei Dir nicht passiert, dann mußt Du ihn wohl manuell ausschalten. Z.B. ev. mit:
Gruß
Olaf
bei deinem Code habe ich ein ganz anderes Problem. Der Rahhmen verschwindet von alleine wieder. Auf den folgenden ist er auch nicht zu sehen.
Wenn das bei Dir nicht passiert, dann mußt Du ihn wohl manuell ausschalten. Z.B. ev. mit:
Code: Alles auswählen
#define SPI_SETDROPSHADOW 0x1025
SystemParametersInfo(SPI_SETDROPSHADOW, ,.F. )
Olaf