指定された水平および垂直のオフセット分だけ移動 <TOP>
OffsetWindowOrgEx 指定されたデバイスコンテキストのウィンドウ原点を、指定された水平および垂直のオフセット分だけ移動
GetWindowOrgEx 指定されたデバイスコンテキストのウィンドウ原点のx座標とy座標を取得
GetDC
指定されたウィンドウのデバイスコンテキストのハンドルを取得
ReleaseDC
デバイスコンテキストを解放
'================================================================ '= 指定された水平および垂直のオフセット分だけ移動 '= (OffsetWindowOrgEx.bas) '================================================================ #include "Windows.bi" Type POINTAPI x As Long y As Long End Type ' 指定されたデバイスコンテキストのウィンドウ原点を、指定された水平および垂直のオフセット分だけ移動 Declare Function Api_OffsetWindowOrgEx& Lib "gdi32" Alias "OffsetWindowOrgEx" (ByVal hDC&, ByVal nX&, ByVal nY&, lpPoint As POINTAPI) ' 指定されたデバイスコンテキストのウィンドウ原点のx座標とy座標を取得 Declare Function Api_GetWindowOrgEx& Lib "gdi32" Alias "GetWindowOrgEx" (ByVal hDC&, lpPoint As POINTAPI) ' 指定されたウィンドウのデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) Var Shared Picture1 As Object Var Shared Button1 As Object Var Shared Bitmap As Object BitmapObject Bitmap Picture1.Attach GetDlgItem("Picture1") Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 Var Shared hDC As Long '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() hDC = Api_GetDC(Picture1.GethWnd) Bitmap.LoadFile "Bike1.bmp" Picture1.DrawBitmap Bitmap, 0, 3 Bitmap.DeleteObject End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var pa As POINTAPI Var Ret As Long For i% = 1 To 10 Ret = Api_OffsetWindowOrgEx(hDC, i%, 3, pa) Ret = Api_GetWindowOrgEx(hDC, pa) Picture1.Cls Bitmap.LoadFile "Bike1.bmp" Picture1.DrawBitmap Bitmap, pa.x, 3 Bitmap.DeleteObject Wait 2 Next End Sub '================================================================ '= '================================================================ Declare Sub MainForm_QueryClose edecl () Sub MainForm_QueryClose() Var Ret As Long Ret = Api_ReleaseDC(Picture1.GethWnd, hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End