デバイスコンテキストの文字色を変更 <TOP>
TextOut 文字を描画
SetTextColor デバイスコンテキストの文字色を変更
SetBkMode
バックグラウンドの塗りつぶしモード設定
GetDC
指定されたウィンドウのデバイスコンテキストのハンドルを取得
ReleaseDC
デバイスコンテキストを解放
例では、テキストボックス内に描画する文字の色を変えています。
'================================================================ '= デバイスコンテキストの文字色を変更 '= (SetTextColor.bas) '================================================================ #include "Windows.bi" #define TRANSPARENT 1 '背景色を設定しない ' 文字を描画 Declare Function Api_TextOut& Lib "gdi32" Alias "TextOutA" (ByVal hDC&, ByVal nXStart&, ByVal nYStart&, ByVal lpString$, ByVal cbString&) ' デバイスコンテキストの文字色を変更 Declare Function Api_SetTextColor& Lib "gdi32" Alias "SetTextColor" (ByVal hDC&, ByVal crColor&) ' バックグラウンドの塗りつぶしモード設定 Declare Function Api_SetBkMode& Lib "gdi32" Alias "SetBkMode" (ByVal hDC&, ByVal iBkMode&) ' 指定されたウィンドウのデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) Var Shared Text1 As Object Var Shared Timer1 As Object Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 12 Timer1.Attach GetDlgItem("Timer1") Var Shared hDC As Long Var Shared txt As String '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() hDC = Api_GetDC(Text1.GethWnd) txt = "tokovalue" Randomize Time Timer1.SetInterval 100 Timer1.Enable -1 End Sub '================================================================ '= '================================================================ Declare Sub Timer1_Timer edecl () Sub Timer1_Timer() Var Ret As Long Ret = Api_SetTextColor(hDC, RGB(Rnd(1) * 255, Rnd(1) * 255, Rnd(1) * 255)) Ret = Api_SetBkMode(hDC, TRANSPARENT) Ret = Api_TextOut(hDC, 5, 0, txt, Len(txt)) End Sub '================================================================ '= '================================================================ Declare Sub MainForm_QueryClose edecl () Sub MainForm_QueryClose() Var Ret As Long Ret = Api_ReleaseDC(Text1.GethWnd, hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End