テキストボックスの背景色を設定 <TOP>
FillRect ブラシで矩形領域を塗りつぶす
CreateSolidBrush ソリッドカラーで論理ブラシを作成
SetBkMode バックグラウンドの塗りつぶしモード設定
DrawText 文字列を指定領域に出力
GetDC デバイスコンテキストのハンドルを取得
ReleaseDC デバイスコンテキストを解放
例では、テキストボックスを金色に設定するとともに、そこに描画する文字列の位置なども設定しています。
'================================================================ '= テキストボックスの背景色を設定 '= (TextBoxBackColor.bas) '================================================================ #include "Windows.bi" Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type ' ブラシで矩形領域を塗りつぶす Declare Function Api_FillRect& Lib "user32" Alias "FillRect" (ByVal hDC&, ByRef r As RECT, ByVal hBrush&) ' ソリッドカラーで論理ブラシを作成 Declare Function Api_CreateSolidBrush& Lib "gdi32" Alias "CreateSolidBrush" (ByVal crColor&) ' バックグラウンドの塗りつぶしモード設定 Declare Function Api_SetBkMode& Lib "gdi32" Alias "SetBkMode" (ByVal hDC&, ByVal iBkMode&) ' 文字列を指定領域に出力 Declare Function Api_DrawText& Lib "user32" Alias "DrawTextA" (ByVal hDC&, ByVal lpStr$, ByVal nCount&, lpRect As RECT, ByVal wFormat&) ' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) #define TRANSPARENT 1 '背景色を設定しない #define OPAQUE 2 '背景色を設定する #define DT_BOTTOM &H8 '長方形の下辺にテキストを揃える。DT_SINGLELINEと同時に指定する #define DT_CENTER &H1 'テキストを水平方向に中央揃えで表示します。 #define DT_END_ELLIPSIS &H8000 '指定した長方形領域にテキストが収まらない場合、テキストの最後を(…)に置き換える #define DT_LEFT &H0 'テキストを左揃え #define DT_PATH_ELLIPSIS &H4000 '指定した長方形領域にテキストが収まらない場合、テキストの途中を(…)に置き換える #define DT_RIGHT &H2 'テキストを右揃え #define DT_TOP &H0 '上揃え。DT_SINGLELINEと同時に指定する必要がある #define DT_SINGLELINE &H20 'テキストを改行せず、一行で表示 #define DT_VCENTER &H4 'テキストを垂直方向の中央揃え。DT_SINGLELINEと同時に指定する必要がある #define DT_WORDBREAK &H10 'テキストを複数行で表示。折り返しは自動的に行われる Var Shared Text1 As Object Var Shared Radio(8) As Object Var Shared Button1 As Object Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14 For i = 0 To 8 Radio(i).Attach GetDlgItem("Radio" & Trim$(Str$(i + 1))) : Radio(i).SetFontSize 14 Next Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Function Index bdecl () As Integer Function Index() Index = Val(Mid$(GetDlgRadioSelect("Radio1"), 6)) - 1 End Function
'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
Var hDC As Long
Var colBrush As Long
Var rct As RECT
Var txt As String
Var wFormat As Long
Var Ret As Long
txt = "C:\Program Files\Microsoft Office\OFFICE11\Excel.exe"
hDC = Api_GetDC(Text1.GethWnd)
colBrush = Api_CreateSolidBrush(RGB(255, 215, 0))
rct.Top = 0
rct.Left = 0
rct.Right = Text1.GetWidth - 4
rct.Bottom = Text1.GetHeight - 4
Ret = Api_FillRect(hDC, rct, colBrush)
Ret = Api_SetBkMode(hDC, TRANSPARENT)
Select Case Index
Case 0
wFormat = DT_SINGLELINE Or DT_BOTTOM
Case 1
wFormat = DT_CENTER
Case 2
wFormat = DT_END_ELLIPSIS
Case 3
wFormat = DT_LEFT
Case 4
wFormat = DT_PATH_ELLIPSIS
Case 5
wFormat = DT_RIGHT
Case 6
wFormat = DT_SINGLELINE Or DT_TOP
Case 7
wFormat = DT_SINGLELINE Or DT_VCENTER
Case 8
wFormat = DT_WORDBREAK
End Select
Ret = Api_DrawText(hDC, txt, Len(txt), rct, wFormat)
Ret = Api_ReleaseDC(Text1.GethWnd, hDC)
End Sub
'================================================================
'=
'================================================================
While 1
WaitEvent
Wend
Stop
End