| |
|
|
- Seite 1 - |
|
Andreas Miethe
| Einen habe ich noch für dieses Jahr.
Bildschirm eingrauen, wie beim XP-Abmelde-Dialog. KompilierenMarkierenSeparieren $H Windows.ph
Importdll("GDI32.DLL","")
struct COLORADJUSTMENT =
caSize%,
caFlag%,
caIlluminantIndex%,
caRedGamma%,
caGreenGamma%,
caBlueGamma%,
caReferenceBlack%,
caReferenceWhite%,
caContrast%,
caBrightness%,
caColorfulness%,
caRedGreenTint%
Proc FadetoGray
windowstyle $F0
Var CA# = New(COLORADJUSTMENT)
Bild anlegen
Var Pic& = Create("hNewPic",%maxx,%maxy,0)
Var DC& = ~CreateCompatibleDC(%hdc)
Ausgangsbild anlegen
Var Pic1& = Create("hNewPic",%maxx,%maxy,0)
Var DC1& = ~CreateCompatibleDC(%hdc)
DC vom Desktop
Var DC2& = ~CreateDC("DISPLAY",0,0,0)
Bilder ins DC
~SelectObject(DC&,PIC&)
~SelectObject(DC1&,PIC1&)
Vom Desktop ins Ausgangsbild
dient nur dazu ein Bild zu haben !
StretchBlt(DC1&,0,0,%maxx,%maxy,DC2&,0,0,%maxx,%maxy,~SRCCOPY | $40000000)
Window 0,0-%maxx,%maxy
ColorAdjustment holen
GetColorAdjustment(%hdc2,CA#)
Blittmode auf HALFTONE setzen
SetStretchBltMode(%hdc2,4)
Full Color auf Werte zwischen -100 und 100
whileLoop CA#.caColorfulness%,-100,-8
CA#.caColorfulness% = &Loop Grautöne
ColorAdjustment setzen
SetColorAdjustment(%hdc2,CA#)
StretchBlt(%hdc2,0,0,%maxx,%maxy,DC1&,0,0,%maxx,%maxy,~SRCCOPY)
DrawsizedPic Pic&,0,0-%maxx,%maxy;0
Repaint
endwhile
Bilder freigeben
~DeleteDC(DC&)
~DeleteDC(DC1&)
~DeleteDC(DC2&)
~DeleteObject(Pic&)
~DeleteObject(Pic1&)
Dispose CA#
EndProc
FadeToGray()
waitinput 10000
end
|
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 28.12.2009 ▲ |
|
|
|
|
| |
|
- Seite 2 - |
|
| |
|
| |
|
|
|
Frank Abbing | Teste das Beispiel in meinem letzten Posting. Funktioniert sehr schön. Bei MSDN wird von Addresse auf Struktur nicht geredet, sondern von Struktur. In solchen Fällen darfst du keinen Zeiger angeben sondern die Daten der Struktur direkt angeben. In diesem Fall ist das sehr einfach, weil nur ein LongInt übergeben werden muss. Ist lediglich etwas Bitrechnerei. Du kannst aber auch Byte bereich#=0,0,128,0 / Long(bereich#,0) benutzen (ungetestet, aber so ähnlich). |
|
|
| |
|
|
|
| >> Teste das Beispiel in meinem letzten Posting. Funktioniert sehr schön.
Nein drum meine ich ja, stürzt bei mir genauso mit selber Meldung read von 0 - also keine Änderung. |
|
|
| |
|
|
|
Frank Abbing | Bei mir läuft es wie es sein soll. Nach Mausklick legt sich die (schwarze) Bitmap zu 50% transparent (sieht dann grau aus wegen des weißen Hintergrunds) über den Print-Text. In Shooter und OFrame benutze ich es genauso, ohne Probleme. Vielleicht hast du doch nicht den ganzen Sourcecode kopiert gehabt? Hatte deinen ursprünglichen Code nämlich abgeändert. |
|
|
| |
|
|
|
Andreas Miethe
| Bei mir funktioniert es auf diese Art. KompilierenMarkierenSeparieren $H Windows.ph
cls
Print "Alphablend"
Var bm1& = Create("hNewPic",256,256,$80)
Var DC1& = ~CreateCompatibleDC(0)
~SelectObject(DC1&,bm1&)
Var bm2& = Create("hNewPic",256,256,$FFFFFF)
Var DC2& = ~CreateCompatibleDC(0)
Startpaint bm2&
DrawText 100,100,"TEXT"
Endpaint
~SelectObject(DC2&,bm2&)
var bf& = 128 << 16
Waitinput
~AlphaBlend(%hdc,0,0,256,256,dc1&,0,0,256,256,bf&)
bf& = 64 << 16
Waitinput
~AlphaBlend(%hdc,0,0,256,256,dc2&,0,0,256,256,bf&)
waitinput
end
|
|
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 30.12.2009 ▲ |
|
|
|
|
Frank Abbing | Du benutzt ja die gleiche Methode (nur mit Bitgeschiebe). Da sollte mein Code bei dir doch auch gehen, oder? |
|
|
| |
|
|
|
Andreas Miethe
| |
|
| Gruss Andreas ________ ________ ________ ________ _ Profan 3.3 - XProfanX2 Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher Homepage : [...] | 30.12.2009 ▲ |
|
|
|
|
Frank Abbing | Ach so, ja. Sollte auch nur die Technik auf niederem Level demonstrieren. Meine nur, weils bei David nicht ging. Hat er wohl was verschusselt. |
|
|
| |
|
|
|
| Ja, hab ich was verschusselt - es funktioniert natürlich! |
|
|
| |
|
|
|
p.specht
| Allererstes Beispiel von Andreas Miethe+ rennoviert:
' $H Windows.ph
Importdll("GDI32.DLL","")
struct COLORADJUSTMENT = \
caSize%, \
caFlag%, \
caIlluminantIndex%, \
caRedGamma%, \
caGreenGamma%, \
caBlueGamma%, \
caReferenceBlack%, \
caReferenceWhite%, \
caContrast%, \
caBrightness%, \
caColorfulness%, \
caRedGreenTint%
Proc FadetoGray
windowstyle $F0
Var CA# = New( COLORADJUSTMENT )
' Bild anlegen
Var Pic& = Create("hNewPic",%maxx,%maxy,0)
Var DC& = ~CreateCompatibleDC(%hdc)
' Ausgangsbild anlegen
Var Pic1& = Create("hNewPic",%maxx,%maxy,0)
Var DC1& = ~CreateCompatibleDC(%hdc)
' DC vom Desktop
Var DC2& = ~CreateDC("DISPLAY",0,0,0)
' Bilder ins DC
~SelectObject(DC&,PIC&)
~SelectObject(DC1&,PIC1&)
' Vom Desktop ins Ausgangsbild
' dient nur dazu ein Bild zu haben !
StretchBlt(DC1&,0,0,%maxx,%maxy,DC2&,0,0,%maxx,%maxy,~SRCCOPY | $40000000)
Window 0,0-%maxx,%maxy
' ColorAdjustment holen
GetColorAdjustment(%hdc2,CA#)
' Blittmode auf HALFTONE setzen
SetStretchBltMode(%hdc2,4)
' Full Color auf Werte zwischen -100 und 100
whileLoop CA#.caColorfulness%,-100,-8
CA#.caColorfulness% = &Loop' Grautöne
' ColorAdjustment setzen
SetColorAdjustment(%hdc2,CA#)
StretchBlt(%hdc2,0,0,%maxx,%maxy,DC1&,0,0,%maxx,%maxy,~SRCCOPY)
DrawsizedPic Pic&,0,0-%maxx,%maxy;0
Repaint
endwhile
' Bilder freigeben
~DeleteDC(DC&)
~DeleteDC(DC1&)
~DeleteDC(DC2&)
~DeleteObject(Pic&)
~DeleteObject(Pic1&)
Dispose CA#
EndProc
FadeToGray()
waitinput 10000
end
P.S.: Klappt auch in Win7-64SP1 |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 22.01.2019 ▲ |
|
|
|
|
Manfred Barei | Also unter Win 10 passiert nichts |
|
|
| XProfan X2Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 23.01.2019 ▲ |
|
|
|
| |
|
- Seite 3 - |
|
|
p.specht
| Danke für die Info! Mit Win10 habe ich leider keine Erfahrung. Vielleicht braucht man lokalen Admin-Status? Gruss |
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 25.01.2019 ▲ |
|
|
|