文字列を描画(W) <TOP>
CreateFontIndirect 論理フォントを作成
CreateSolidBrush ソリッドカラーで論理ブラシを作成
SelectObject 指定されたデバイスコンテキストのオブジェクトを選択
BeginPath
hDCで指定されたデバイスコンテキストのパスの作成
EndPath
BeginPathで開始したパスの作成を終了
TextOut
文字を描画
StrokePath
選択されているパスを選択されているペンを使用して描画
FillPath
選択されているブラシによってパスの内部を塗りつぶす
DeleteObject
関連付けられていたすべてのシステムリソースを解放
StrokeAndFillPath パスを描画し、その内部を選択されているブラシによって塗りつぶす
GetDCデバイスコンテキストのハンドルを取得
ReleaseDC
デバイスコンテキストを解放
SetBkMode
バックグラウンドの塗りつぶしモード設定
'================================================================ '= 文字列を描画 '= (EndPath.bas) '================================================================ #include "windows.bi" #define LF_FACESIZE 32 Type LOGFONT lfHeight As Long lfWidth As Long lfEscapement As Long lfOrientation As Long lfWeight As Long lfItalic As Byte lfUnderline As Byte lfStrikeOut As Byte lfCharSet As Byte lfOutPrecision As Byte lfClipPrecision As Byte lfQuality As Byte lfPitchAndFamily As Byte lfFaceName As String * LF_FACESIZE End Type ' 論理フォントを作成 Declare Function Api_CreateFontIndirect& Lib "gdi32" Alias "CreateFontIndirectA" (lpLogFont As LOGFONT) ' ソリッドカラーで論理ブラシを作成 Declare Function Api_CreateSolidBrush& Lib "gdi32" Alias "CreateSolidBrush" (ByVal crColor&) ' 指定されたデバイスコンテキストのオブジェクトを選択 Declare Function Api_SelectObject& Lib "gdi32" Alias "SelectObject" (ByVal hDC&, ByVal hObject&) ' hDCで指定されたデバイスコンテキストのパスの作成 Declare Function Api_BeginPath& Lib "gdi32" Alias "BeginPath" (ByVal hDC&) ' BeginPathで開始したパスの作成を終了 Declare Function Api_EndPath& Lib "gdi32" Alias "EndPath" (ByVal hDC&) ' 文字を描画 Declare Function Api_TextOut& Lib "gdi32" Alias "TextOutA" (ByVal hDC&, ByVal nXStart&, ByVal nYStart&, ByVal lpString$, ByVal cbString&) ' 選択されているパスを選択されているペンを使用して描画する Declare Function Api_StrokePath& Lib "gdi32" Alias "StrokePath" (ByVal hDC&) ' 選択されているブラシによってパスの内部を塗りつぶす Declare Function Api_FillPath& Lib "gdi32" Alias "FillPath" (ByVal hDC&) ' ペン、ブラシ、フォント、ビットマップ、リージョン、パレットのいずれかの論理オブジェクトを削除し、そのオブジェクトに関連付けられていたすべてのシステムリソースを解放。オブジェクトを削除した後は、指定されたハンドルは無効になる Declare Function Api_DeleteObject& Lib "gdi32" Alias "DeleteObject" (ByVal hObject&) ' パスを描画し、その内部を選択されているブラシによって塗りつぶす Declare Function Api_StrokeAndFillPath& Lib "gdi32" Alias "StrokeAndFillPath" (ByVal hDC&) ' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) ' バックグラウンドの塗りつぶしモード設定 Declare Function Api_SetBkMode& Lib "gdi32" Alias "SetBkMode" (ByVal hDC&, ByVal iBkMode&) #define TRANSPARENT 1 '背景色を設定しない Var Shared Button1 As Object Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var hDC As Long Var sText As String Var lf As LOGFONT Var rFont As Long Var Size As Integer Var Ret As Long sText = "札幌市" hDC = Api_GetDC(GethWnd) Size = 48 lf.lfHeight = Size lf.lfCharSet = 128 lf.lfFaceName = "DF太楷書体" & Chr$(0) lf.lfWeight = 700 rFont = Api_CreateFontIndirect(lf) Ret = Api_SelectObject(hDC, rFont) Ret = Api_SetBkMode(hDC, TRANSPARENT) Ret = Api_BeginPath(hDC) Ret = Api_TextOut(hDC, 10, 4, sText, Len(sText)) Ret = Api_EndPath(hDC) Ret = Api_StrokePath(hDC) Ret = Api_BeginPath(hDC) Ret = Api_TextOut(hDC, 10, 52, sText, Len(sText)) Ret = Api_EndPath(hDC) Ret = Api_FillPath(hDC) Ret = Api_BeginPath(hDC) Ret = Api_TextOut(hDC, 10, 100, sText, Len(sText)) Ret = Api_EndPath(hDC) Ret = Api_StrokeAndFillPath(hDC) Ret = Api_SelectObject(hDC, oldBrush) Ret = Api_DeleteObject(hBrush) Ret = Api_ReleaseDC(GethWnd, hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End