给你个例子,自己看吧。 有注释。
#include <WindowsConstants.au3>
#include <WinAPI.au3>
ShowCross(@DesktopWidth / 2, @DesktopHeight / 2, 200, 20, 0xFF, 3000)
; 中心点的坐标X Y 线的长度/2 线宽 颜色 延迟时间
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 - $length, $start_x + $length, $start_y - $length) ; 上面的那条线 从左到右
Sleep(1000) ;这个延迟在实际应用中不需要。我是为了让你看的更清楚,才加的
_WinAPI_DrawLine($hDC, $start_x - $length, $start_y + $length, $start_x + $length, $start_y + $length) ; 下面的那条线 从左到右
Sleep(1000) ;这个延迟在实际应用中不需要。我是为了让你看的更清楚,才加的
_WinAPI_DrawLine($hDC, $start_x - $length, $start_y - $length, $start_x - $length, $start_y + $length) ; 左面的那条线 从上到下
Sleep(1000) ;这个延迟在实际应用中不需要。我是为了让你看的更清楚,才加的
_WinAPI_DrawLine($hDC, $start_x + $length, $start_y - $length, $start_x + $length, $start_y + $length) ; 右面的那条线 从上到下
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
|