ビットマップパターンを持つ論理ブラシを作成 <TOP>
CreatePatternBrush 指定されたビットマップパターンを持つ論理ブラシを作成
FillRect ブラシで矩形領域を塗りつぶす
SetRect
RECT構造体の値を設定
DeleteObject システムリソースを解放
CreateBitmap 指定された幅・高さ・色形式を持つビットマップを作成
GetDC 指定されたウィンドウのデバイスコンテキストのハンドルを取得
ReleaseDC デバイスコンテキストを解放
'================================================================ '= ビットマップパターンを持つ論理ブラシを作成 '= (CreatePatternBrush.bas) '================================================================ #include "Windows.bi" Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type ' 指定されたビットマップパターンを持つ論理ブラシを作成 Declare Function Api_CreatePatternBrush& Lib "gdi32" Alias "CreatePatternBrush" (ByVal hBitmap&) ' ブラシで矩形領域を塗りつぶす Declare Function Api_FillRect& Lib "user32" Alias "FillRect" (ByVal hDC&, lpRect As RECT, ByVal hBrush&) ' RECT構造体の値を設定 Declare Function Api_SetRect& Lib "user32" Alias "SetRect" (lpRect As RECT, ByVal X1&, ByVal Y1&, ByVal X2&, ByVal Y2&) ' 論理オブジェクトを削除し、そのオブジェクトに関連付けられていたすべてのシステムリソースを解放 Declare Function Api_DeleteObject& Lib "gdi32" Alias "DeleteObject" (ByVal hObject&) ' 指定された幅・高さ・色形式を持つビットマップを作成 Declare Function Api_CreateBitmap& Lib "gdi32" Alias "CreateBitmap" (ByVal nWidth&, ByVal nHeight&, ByVal nPlanes&, ByVal nBitCount&, lpBits As Any) ' 指定されたウィンドウのデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) Var bBytes(8) As Integer Var Shared Button1 As Object Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var rc As RECT Var hDC As Long Var mBrush As Long Var hBitmap As Long Var Ret As Long hDC = Api_GetDC(GethWnd) For mBrush = 0 To 7 Step 2 bBytes(mBrush) = 170 '170 = 10101010 bBytes(mBrush + 1) = 85 ' 85 = 01010101 Next 'ビットマップを作成 hBitmap = APi_CreateBitmap(8, 8, 1, 1, bBytes(1)) 'パターンブラシの作成 mBrush = Api_CreatePatternBrush(hBitmap) Ret = Api_SetRect(rc, 0, 0, GetWidth, GetHeight) 'フォームを塗りつぶす Ret = Api_FillRect(hDC, rc, mBrush) '解放 Ret = Api_DeleteObject(mBrush) Ret = Api_DeleteObject(hBitmap) Ret = Api_ReleaseDC(hWnd, hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End