指定した矩形領域に文字列を描画(U) <TOP>
SetTextColor デバイスコンテキストの文字色を変更
GetClientRect ウィンドウのクライアント領域の座標を取得
TextOut
文字を描画
DrawText
文字列を指定領域に出力
SetBkMode
バックグラウンドの塗りつぶしモード設定
BeginPaint 指定されたウィンドウに対して描画の準備
EndPaint
指定されたウィンドウ内の描画の終わりを示す
GetDC
指定されたウィンドウのデバイスコンテキストのハンドルを取得
ReleaseDC
デバイスコンテキストを解放
DT_WORDBREAK(&H10) テキストを複数行で表示。折り返しは自動的に行われる
TRANSPARENT(1) 背景色を設定しない
'================================================================ '= 指定した矩形領域に文字列を描画(U) '= (BeginPaint.bas) '================================================================ #include "Windows.bi" Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type Type PAINTSTRUCT fhDC As Long 'デバイスコンテキストを識別 fErase As Long 'このメンバが 1 のときは、バックグラウンドを再描画 rcPaint As RECT '更新(再描画)する矩形座標を指定するRECT構造体 fRestore As Long '予約されているメンバ fIncUpdate As Long '予約されているメンバ rgbReserved(31) As Byte '予約されているメンバ End Type #define DT_WORDBREAK &H10 'テキストを複数行で表示。折り返しは自動的に行われる #define TRANSPARENT 1 '背景色を設定しない ' デバイスコンテキストの文字色を変更 Declare Function Api_SetTextColor& Lib "gdi32" Alias "SetTextColor" (ByVal hDC&, ByVal crColor&) ' ウィンドウのクライアント領域の座標を取得 Declare Function Api_GetClientRect& Lib "user32" Alias "GetClientRect" (ByVal hWnd&, lpRect As RECT) ' 文字を描画 Declare Function Api_TextOut& Lib "gdi32" Alias "TextOutA" (ByVal hDC&, ByVal nXStart&, ByVal nYStart&, ByVal lpString$, ByVal cbString&) ' 文字列を指定領域に出力 Declare Function Api_DrawText& Lib "user32" Alias "DrawTextA" (ByVal hDC&, ByVal lpStr$, ByVal nCount&, lpRect As RECT, ByVal wFormat&) ' バックグラウンドの塗りつぶしモード設定 Declare Function Api_SetBkMode& Lib "gdi32" Alias "SetBkMode" (ByVal hDC&, ByVal iBkMode&) ' 指定されたウィンドウに対して描画の準備 Declare Function Api_BeginPaint& Lib "user32" Alias "BeginPaint" (ByVal hWnd&, lpPaint As PAINTSTRUCT) ' 指定されたウィンドウ内の描画の終わりを示す Declare Function Api_EndPaint& Lib "user32" Alias "EndPaint" (ByVal hWnd&, lpPaint As PAINTSTRUCT) ' 指定されたウィンドウのデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) '================================================================ '= '================================================================ Declare Sub MainForm_Resize edecl () Sub MainForm_Resize() Var hDC As Long Var hWnd As Long Var rct As RECT Var ps As PAINTSTRUCT Var txt As String Var Ret As Long Ret = Api_GetClientRect(GethWnd, rct) hDC = Api_GetDC(GethWnd) ps.fhDC = hDC ps.fErase = 1 txt = "Left=" & Trim$(Str$(rct.Left)) & " Top=" & Trim$(Str$(rct.Top)) & " Right=" & Trim$(Str$(rct.Right)) & " Bottom=" & Trim$(Str$(rct.Bottom)) Ret = Api_BeginPaint(GethWnd, ps) Ret = Api_SetTextColor(hDC, RGB(255, 0, 0)) Ret = Api_SetBkMode(hDC, TRANSPARENT) Ret = Api_TextOut(hDC, 20, 10, txt, Len(txt)) rct.Left = 20 rct.Top = 30 rct.Right = GetWidth - 20 rct.Bottom = GetHeight - 20 txt = "指定されたウィンドウに対して描画の準備をする。" & Chr$(13, 10) & "PAINTSTRUCT 構造体には、ペイント処理に関する情報が設定される。" Ret = Api_SetTextColor(hDC, RGB(0, 0, 255)) Ret = Api_SetBkMode(hDC, TRANSPARENT) Ret = Api_DrawText(hDC, txt, Len(txt), rct, DT_WORDBREAK) Ret = Api_EndPaint(GethWnd, ps) Ret = Api_ReleaseDC(GethWnd, hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End