Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Text: Grauen Text ausgeben.
PRFellow-Vorlage
Autor: Thomas Hölzer
Grauen Text ausgeben
z.B um Deaktivierung anzuzeigen
Geeignet auch für interessante Texteffekte
Proc DrawGrayString: benutzt systemdefinierte Farbwerte
Mögliche Werte für 4. Parameter (s. win32.hlp unter GetStockObject)
WHITE_BRUSH = 0
LTGRAY_BRUSH = 1
GRAY_BRUSH = 2
DKGRAY_BRUSH = 3
BLACK_BRUSH = 4
HOLLOW_BRUSH = 5
NULL_BRUSH = 5
Proc DrawGrayStringEx: 4. Parameter ist beliebiger RGB-TrueColor-Wert
Def GrayString(9) !USER32,GrayStringA
Def GetStockObject(1) !GDI32,GetStockObject
Def GetDC(1) !USER32,GetDC
Def CreateSolidBrush(1) !GDI32,CreateSolidBrush
Def w32_DeleteObject(1) !GDI32,DeleteObject
Def ReleaseDC(2) !USER32,ReleaseDC
Declare text#
Proc DrawGrayString
Parameters txt$,x&,y&,bc&
Declare dc&
Let dc&=GetDC(GetActiveWindow())
Dim text#,Add(Len(txt$),1)
String text#,0=txt$
GrayString(dc&,GetStockObject(bc&),0,text#,Len(txt$),x&,y&,0,0)
Case Equ(dc&,%hdc):
GrayString(%hdc2,GetStockObject(bc&),0,text#,Len(txt$),x&,y&,0,0)
Dispose text#
ReleaseDC(GetActiveWindow(),dc&)
EndProc
Proc DrawGrayStringEx
Parameters txt$,x&,y&,bc&
Declare dc&,hb&
Let dc&=GetDC(GetActiveWindow())
Let hb&=CreateSolidBrush(bc&)
Dim text#,Add(Len(txt$),1)
String text#,0=txt$
GrayString(dc&,hb&,0,text#,Len(txt$),x&,y&,0,0)
Case Equ(dc&,%hdc):
GrayString(%hdc2,hb&,0,text#,Len(txt$),x&,y&,0,0)
Dispose text#
w32_DeleteObject(hb&)
ReleaseDC(GetActiveWindow(),dc&)
EndProc
Beispiele
Def GetSysColor(1) !USER32,GetSysColor
Declare txt$
SetTrueColor 1 !!
Cls GetSysColor(15)
WindowTitle Add$(GetText$(%hwnd), - Powered by PRFellow 2001)
UseFont Times New Roman,50,0,0,0,0
Let txt$=Beispiele für DrawGrayString
DrawGrayString txt$,10,10,0
DrawGrayString txt$,30,30,2
DrawGrayString txt$,50,50,3
DrawGrayString txt$,70,70,4
DrawGrayString txt$,90,90,5
Let txt$=... und das ist DrawGrayStringEx
DrawGrayStringEx txt$,10,150,RGB(255,0,0)
DrawGrayStringEx txt$,10,190,RGB(0,255,0)
DrawGrayStringEx txt$,10,230,RGB(0,0,255)
Let txt$=Ein Schlagschatten-Beispiel
TextColor 0,-1
DrawText 70,320,txt$
DrawGrayString txt$,72,324,3
While 1
Wend