Вообще столкнулся с проблемой. Нужно в окне клиента нарисовать линии красного цвета. Линии рисуются, но живут они не более 1 секунды. Задержку sleep, после рисования _WinAPI_DrawLine ставить бесполезно, линии все равно пропадают.Вопрос, как сделать так, чтобы линии после рисования _WinAPI_DrawLine жили подольше.
Код:
func grafic($x,$y,$object)
local $s=0,$d=0
local $bluhWnd = WinWaitActive("Blue", "", 5)
local $hDC = _WinAPI_GetWindowDC($bluhWnd) ; DC всего экрана (рабочего стола)
Local $pos = WinGetPos($bluhWnd) ; Возвращает размер окна (Не размер клиентской области, которая указывается в GUICreate)
Local $width = $pos[2]
Local $height = $pos[3]
local $rgn = _WinAPI_CreateRectRgn(0, 0, $width, $height)
_WinAPI_SetWindowRgn($hDC, $rgn)
Local $object2 = _GDIPlus_BitmapCreateFromHBITMAP ($object)
Local $objectX = _GDIPlus_ImageGetWidth ($object2)
local $objectY = _GDIPlus_ImageGetHeight ($object2)
local $hPen = _WinAPI_CreatePen($PS_SOLID, 1, 0xFFFF0000)
local $obj_orig = _WinAPI_SelectObject($hDC, $hPen)
;MsgBox(0, "X и Y равны:", $objectX)
If $objectX = 1 Then
$d = Ceiling($objectY/2)
$s=1
EndIf
If $objectY = 1 Then
$s = Ceiling($objectX/2)
$d=1
EndIf
Select
case $s=1
_WinAPI_DrawLine($hDC, $x, $y+$d, $x, $y-$d)
case $d=1
_WinAPI_DrawLine($hDC, $x+$s, $y, $x-$s, $y )
EndSelect
Sleep(2000)
;_WinAPI_RedrawWindow(_WinAPI_GetDesktopWindow(), 0, 0, $RDW_INVALIDATE + $RDW_ALLCHILDREN)
_WinAPI_SelectObject($hDC, $obj_orig)
_WinAPI_DeleteObject($hPen)
_WinAPI_ReleaseDC(0, $hDC)
EndFunc