線を描画します。
#Include <WinAPI.au3>
_WinAPI_DrawLine($hDC, $iX1, $iY1, $iX2, $iY2)
パラメータ
$hDC | デバイスコンテキストのハンドル |
$iX1 | 線の始点のX座標 |
$iY1 | 線の始点のY座標 |
$iX2 | 線の終点のX座標 |
$iY2 | 線の終点のY座標 |
返し値
成功: | True |
失敗: | False |
注意
内部で_WinAPI_MoveTo()と_WinAPI_LineTo()を呼んでいます。詳しくは_WinAPI_LineTo()を参照。
関連
_WinAPI_MoveTo, _WinAPI_LineTo, _WinAPI_SelectObject, _WinAPI_CreatePen
例
#include <WindowsConstants.au3>
#include <WinAPI.au3>
ShowCross(@DesktopWidth / 2, @DesktopHeight / 2, 20, 2, 0xFF, 3000)
Func ShowCross($start_x, $start_y, $length, $width, $color, $time)
Local $hDC, $hPen, $obj_orig
$hDC = _WinAPI_GetWindowDC(0) ; 全体スクリーン(デスクトップ)のDC
$hPen = _WinAPI_CreatePen($PS_SOLID, $width, $color)
$obj_orig = _WinAPI_SelectObject($hDC, $hPen)
_WinAPI_DrawLine($hDC, $start_x - $length, $start_y, $start_x - 5, $start_y) ; 水平方向 左
_WinAPI_DrawLine($hDC, $start_x + $length, $start_y, $start_x + 5, $start_y) ; 水平方向 右
_WinAPI_DrawLine($hDC, $start_x, $start_y - $length, $start_x, $start_y - 5) ; 垂直方向 上
; _WinAPI_DrawLine($hDC, $start_x, $start_y + $length, $start_x, $start_y + 5) ; 垂直方向 下
_WinAPI_MoveTo($hDC, $start_x, $start_y + $length)
_WinAPI_LineTo($hDC, $start_x, $start_y + 5)
Sleep($time) ; 十字画面を指定した秒数だけ表示
; デスクトップをリフレッシュ(十字を消す)
_WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
; リソースを削除
_WinAPI_SelectObject($hDC, $obj_orig)
_WinAPI_DeleteObject($hPen)
_WinAPI_ReleaseDC(0, $hDC)
EndFunc ;==>ShowCross