Что нового

не могу "стереть" _GDIPlus_GraphicsDrawLine нарисованные линии

Статус
Закрыто для дальнейших ответов.
D

dreamorder

Гость
Доброго времени суток гос-да.
Снова возникла проблема. Рисую линии, но удалять при новом рисунке предыдущие не получается.
Хотя на графике в 1 дочернем окне всё работает, а вот во втором ну никак не
желает делать тоже самое :stars:

вот пример скрипта:
Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GDIPlus.au3>
#include <WinAPIEx.au3>
#include <BigNum.au3>
#include <Date.au3>
;AutoItSetOption('TrayIconHide', 1)


;Opt("GUIResizeMode",1) ; "1" обязательное обьявление переменных

;=====================================================================================
HotKeySet("+{ESC}", "vyx")
;==================================================================================


Global $Form2 = GUICreate("Real pVp", 952, 630, 100, 100)
GUISetIcon("C:\Windows\rty\logo\logo.ico", -1)
GUISetBkColor(0xE6E6FA)


Global $iShift = 0 ; начальный сдвиг графика
Global $iStep = 777 ; количество точек нарисованных неподвижно
Global $gg = 72999
Global $iHeight = 219
Global $Form1 = GUICreate("",$gg, $iHeight, 32, 5, BitOR($DS_SETFOREGROUND,$WS_CHILD),-1,$Form2) ; дочернее окно графика
GUISetBkColor(0xE6E6FA)

Global $iWidth3 = 27
Global $iHeight3 = 510
Global $Form3 = GUICreate("",$iWidth3, $iHeight3, 2, 5, BitOR($DS_SETFOREGROUND,$WS_CHILD),-1,$Form2) ; дочернее окно графика
GUISetBkColor(0x000000)
GUISetState(@SW_SHOW,$Form1)
GUISetState(@SW_SHOW,$Form2)
GUISetState(@SW_SHOW,$Form3)
GUISetState()

; ===================================================================================

AdlibRegister('ran', Random(2900, 3000))
AdlibRegister('_Indikator', 3000)
AdlibRegister('Line', 3000)
AdlibRegister('_Main', 60000)
; ==================================================================================

; ===================================================================================
Global $nCheck

Global $0pStartX,$1pStartX,$2pStartX,$3pStartX,$4pStartX,$5pStartX,$6pStartX
Global $iStartY = 109
Global $0pEndX,$1pEndX,$2pEndX,$3pEndX,$4pEndX,$5pEndX,$6pEndX
Global $iEndY = 109
Global $Per = 0,$pPer = 0, $iPer = 0,$centrcen = 0

Global $03StartX,$13StartX,$23StartX,$33StartX,$43StartX,$53StartX,$63StartX
Global $3StartY = 255,$3EndY = 255
Global $03EndX,$13EndX,$23EndX,$33EndX,$43EndX,$53EndX,$63EndX

Global $0pPerx1 = 4 ; координаты пера свечей
Global $0pPerx2 = 7
Global $1pPerx1 = 1
Global $1pPerx2 = 3
Global $2pPerx1 = 3
Global $2pPerx2 = 5
Global $3pPerx1 = 5
Global $3pPerx2 = 7
Global $4pPerx1 = 7
Global $4pPerx2 = 9
Global $5pPerx1 = 9
Global $5pPerx2 = 10

Global $03Perx1 = 255 ; координаты пера для индикатора
Global $03Perx2 = 256
Global $13Perx1 = 255
Global $13Perx2 = 256
Global $23Perx1 = 255
Global $23Perx2 = 256
Global $33Perx1 = 255
Global $33Perx2 = 256
Global $43Perx1 = 255
Global $43Perx2 = 256
Global $53Perx1 = 255
Global $53Perx2 = 256
Global $63Perx1 = 255
Global $63Perx2 = 256

Global $ffx = 0
Global $ffxx = 27
Global $ffy = 255
Global $ffyy = 255


Global $Lpx = 109
Global $Lpxx = 101
Global $Lpyy = 875
Global $Lpy = 12
Global $Lpyf = 870
Global $Lpxxx = 109

;Global $cena1,$cena2,$cena3,$cena4,$cena5,$cena6
;Global $h1 =100, $h2 =100, $h3 =100, $h4 =100, $h5 =100, $h6 =100

;Global $hhh

_GDIPlus_Startup()
Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
Global $hBitmap = _GDIPlus_BitmapCreateFromGraphics($gg, $iHeight, $hGraphic)
Global $hBackbuffer1 = _GDIPlus_ImageGetGraphicsContext($hBitmap)
Global $hEraser11 = _GDIPlus_PenCreate(0xFFE6E6FA,24) ; стирающая ручка полосы процентов
Global $hPenBlueThinz = _GDIPlus_PenCreate(0xFF5F9EA0,1) ; перо для полоса процент линии
Global $hPenBlueThinz0 = _GDIPlus_PenCreate(0xFF800000,1) ; перо для полоса 0 линии
Global $hPenBlueThin0 = _GDIPlus_PenCreate(0xFFFF0000,2) ; перо для синей линии
Global $hPenBlueThin1 = _GDIPlus_PenCreate(0xFF008000,2) ; перо для синей линии
Global $hPenBlueThin2 = _GDIPlus_PenCreate(0xFFFFA500,3) ; перо для синей линии
Global $hPenBlueThin3 = _GDIPlus_PenCreate(0xFFFFFFff,4) ; перо для синей линии
Global $hPenBlueThin6 = _GDIPlus_PenCreate(0xFF00FF00, 3) ; ручка для  
Global $hBrushYellow = _GDIPlus_BrushCreateSolid(0xFF000000) ;  кисть вывода цифр процентов
;Global $hEraser = _GDIPlus_PenCreate(0xFF696969, 47) ; стирающая ручка цифр процентов
Global $hFormat = _GDIPlus_StringFormatCreate() ; формат текста
Global $hFamily = _GDIPlus_FontFamilyCreate('Tahoma') ; шрифт текста
Global $hFont = _GDIPlus_FontCreate($hFamily, 10) ; размер шрифта
_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer1, 2)

_GDIPlus_Startup()
Global $hGraphic3 = _GDIPlus_GraphicsCreateFromHWND($Form3)
Global $hBitmap3 = _GDIPlus_BitmapCreateFromGraphics($iWidth3, $iHeight3, $hGraphic3)
Global $hBackbuffer3 = _GDIPlus_ImageGetGraphicsContext($hBitmap3)
;Global $hEraser113 = _GDIPlus_PenCreate(0xFF0000c0,120) ; стирающая ручка полосы процентов
Global $hPenBlueThinz03 = _GDIPlus_PenCreate(0xFF808000,5) ; перо для полоса 0 линии
Global $hPenBlueThin03 = _GDIPlus_PenCreate(0xFF1f561c,333) ; перо для синей линии
Global $hPenBlueThin13 = _GDIPlus_PenCreate(0xFFFFA500,5) ; перо для синей линии
Global $hPenBlueThin23 = _GDIPlus_PenCreate(0xFFFFD700,5) ; перо для синей линии
Global $hPenBlueThin33 = _GDIPlus_PenCreate(0xFFFFFFFF,3) ; перо для синей линии
Global $hPenBlueThin63 = _GDIPlus_PenCreate(0xFF808000,5) ; ручка для  
_GDIPlus_GraphicsSetSmoothingMode($hBackbuffer3, 2)
GUIRegisterMsg($WM_ERASEBKGND, 'WM_ERASEBKGND')



While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
		Case $GUI_EVENT_CLOSE
			_GDIPlus_FontDispose($hFont)
            _GDIPlus_FontFamilyDispose($hFamily)
            _GDIPlus_StringFormatDispose($hFormat)
			_GDIPlus_PenDispose($hPenBlueThinz0) ; удаление ресурсов
			_GDIPlus_PenDispose($hPenBlueThinz) ; удаление ресурсов
			_GDIPlus_PenDispose($hPenBlueThin0) ; удаление ресурсов
            _GDIPlus_PenDispose($hPenBlueThin1) ; удаление ресурсов
			_GDIPlus_PenDispose($hPenBlueThin2) ; удаление ресурсов
			_GDIPlus_PenDispose($hPenBlueThin3) ; удаление ресурсов
			_GDIPlus_PenDispose($hPenBlueThin6)
			_GDIPlus_BrushDispose($hBrushYellow)
			;_GDIPlus_PenDispose($hEraser)
			_GDIPlus_PenDispose($hEraser11)
            _GDIPlus_GraphicsDispose($hGraphic) ; удаление ресурсов
            _GDIPlus_BitmapDispose($hBitmap)
			  _GDIPlus_GraphicsDispose($hBackbuffer1)
	;-----------------------------------------------------------------
			_GDIPlus_PenDispose($hPenBlueThinz03) ; удаление ресурсов
			_GDIPlus_PenDispose($hPenBlueThin03) ; удаление ресурсов
            _GDIPlus_PenDispose($hPenBlueThin13) ; удаление ресурсов
			_GDIPlus_PenDispose($hPenBlueThin23) ; удаление ресурсов
			_GDIPlus_PenDispose($hPenBlueThin33) ; удаление ресурсов
			_GDIPlus_PenDispose($hPenBlueThin63)
			;_GDIPlus_PenDispose($hEraser113)
            _GDIPlus_GraphicsDispose($hGraphic3) ; удаление ресурсов
            _GDIPlus_BitmapDispose($hBitmap3)
			  _GDIPlus_GraphicsDispose($hBackbuffer3)
		_GDIPlus_Shutdown()
            Exit

    EndSwitch
WEnd


Func _Main()

    Local  $tTime, $aTime
    ; Получение текущего системного времени
    $tTime = _Date_Time_GetSystemTime()
    $aTime = _Date_Time_SystemTimeToArray($tTime)
   ; MemoWrite("Час .........: " & $aTime[3])
  ;  MemoWrite("Минута ......: " & $aTime[4])
  ;  MemoWrite("Секунда .....: " & $aTime[5])
  ;  MemoWrite("Миллисекунда : " & $aTime[6])
  Select
	Case $aTime[4] = 0
	pPerx()
    Case $aTime[4] = 3
	pPerx()
	Case $aTime[4] = 6
	pPerx()
    Case $aTime[4] = 9
	pPerx()
    Case $aTime[4] = 12
	pPerx()
	Case $aTime[4] = 15
	pPerx()
    Case $aTime[4] = 18
	pPerx()
	Case $aTime[4] = 21
	pPerx()
    Case $aTime[4] = 24
	pPerx()
    Case $aTime[4] = 27
	pPerx()
	Case $aTime[4] = 30
	pPerx()
    Case $aTime[4] = 33
	pPerx()
	Case $aTime[4] = 36
	pPerx()
    Case $aTime[4] = 39
	pPerx()
    Case $aTime[4] = 42
	pPerx()
	Case $aTime[4] = 45
	pPerx()
    Case $aTime[4] = 48
	pPerx()
	Case $aTime[4] = 51
	pPerx()
    Case $aTime[4] = 54
	pPerx()
    Case $aTime[4] = 57
	pPerx()

	EndSelect
EndFunc

Func _Indikator()
$Per = _BigNum_Add($Per, $pPer)
$3EndY = _BigNum_Add($3EndY, $pPer)
$hhh = (100 - $Per)
EndFunc


Func pPerx()
    $centrcen = $Per + $pPer
 If $Lpy >= $iStep Then ; рассояние в пикселях, после которого нужно делать сдвиг графика
        $iShift -= 12 ; смещение графика
        _GDIPlus_GraphicsClear($hGraphic) ; очистка графика
        _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight) ; рисуем заново со смещением
    Else
        $Lpyf -=12
        $Lpy += 12
    EndIf
	$0pPerx1 += 12
    $0pPerx2 += 12
    $1pPerx1 += 12
    $1pPerx2 += 12
	$2pPerx1 += 12
    $2pPerx2 += 12
	$3pPerx1 += 12
    $3pPerx2 += 12
	$4pPerx1 += 12
    $4pPerx2 += 12
	$5pPerx1 += 12
    $5pPerx2 += 12
EndFunc

Func ran()
 $pPer = Random(-5, 5, 1)
EndFunc


Func Line()
Local $tt
    Select
		Case $iPer <- 99
			$iPer += 15
		Case $iPer > 99
			$iPer -= 15
		Case $Per <- 99
			$tt = Random(-9, -3,1)
            $Per = $tt
            $iStartY = $tt
            $iEndY = $tt
            $Lpx = $tt
            $Lpxx = $tt
			 $Lpxxx = $tt
        Case $Per > 99
			$ttp = Random(3,9,1)
            $iStartY = $ttp
            $iEndY = $ttp
            $Per = $ttp
            $Lpx = $ttp
            $Lpxx = $ttp
			 $Lpxxx = $ttp
		EndSelect
    $0pStartX = $0pPerx1
	$0pEndX = $0pPerx2
    $1pStartX = $1pPerx1
	$1pEndX = $1pPerx2
	$2pStartX = $2pPerx1
	$2pEndX = $2pPerx2
	$3pStartX = $3pPerx1
	$3pEndX = $3pPerx2
	$4pStartX = $4pPerx1
	$4pEndX = $4pPerx2
	$5pStartX = $5pPerx1
	$5pEndX = $5pPerx2

	$03StartX = 0
	$03EndX = 4
    $13StartX = 4
	$13EndX = 8
	$23StartX = 9
	$23EndX = 13
	$33StartX = 13
	$33EndX = 15
	$43StartX = 15
	$43EndX = 19
	$53StartX = 20
	$53EndX = 24
    $63StartX = 24
	$63EndX = 27

    $03StartY = $03Perx1
	$03EndY = $03Perx2
    $13StartY = $13Perx1
	$13EndY = $13Perx2
	$23StartY = $23Perx1
	$23EndY = $23Perx2
	$33StartY = $33Perx1
	$33EndY = $33Perx2
	$43StartY = $43Perx1
	$43EndY = $43Perx2
	$53StartY = $53Perx1
	$53EndY = $53Perx2
    $63StartY = $63Perx1
	$63EndY = $63Perx2

    $iStartY = _BigNum_Add($iStartY, $pPer)
	$iEndY = _BigNum_Add($iEndY, $pPer)
    $Lpx = _BigNum_Add($Lpx, $pPer)
    $Lpxx = _BigNum_Add($Lpxx, $pPer)
	$Lpxxx = _BigNum_Add($Lpxxx, $pPer)

$3StartY = _BigNum_Add($3StartY, $pPer)


	grss03()
	grss13()
	grss23()
	grss33()
	grss43()
	grss53()
	grss63()


	Lp100()
	grss0($0pStartX, $iStartY, $0pEndX, $iEndY)
	grss1($1pStartX, $iStartY, $1pEndX, $iEndY)
	grss2($2pStartX, $iStartY, $2pEndX, $iEndY)
	grss3($3pStartX, $iStartY, $3pEndX, $iEndY)
	grss4($4pStartX, $iStartY, $4pEndX, $iEndY)
	grss5($5pStartX, $iStartY, $5pEndX, $iEndY)
EndFunc

Func Lp100()
	Local  $tLayout
    Local $PR
    $PR &= 100 - $Per
    $PR &='%'

_GDIPlus_GraphicsDrawLine($hGraphic, $Lpy, $Lpx, 72999, $Lpxxx, $hEraser11) ; удаление нарисованного
_GDIPlus_GraphicsDrawLine($hGraphic, $Lpy, $Lpx, 870 ,$Lpxxx, $hPenBlueThinz) ; линия полосы %
_GDIPlus_GraphicsDrawLine($hGraphic, $Lpy, 109, 72999 ,109,$hPenBlueThinz0) ; линия полосы 0
 $tLayout = _GDIPlus_RectFCreate($Lpyy +2, $Lpxx, 0, 0) ; координаты для надписи с длиной отрезка
    _GDIPlus_GraphicsDrawStringEx($hGraphic, Round($PR, 3) & '%', $hFont, $tLayout, $hFormat, $hBrushYellow) ; вывод надписи
	 _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndFunc




Func grss0($0pStartX, $iStartY, $0pEndX, $iEndY)
	Select
		Case $Per <= $centrcen
; _GDIPlus_GraphicsDrawLine($hBackbuffer1, 12, $iHeight/2, $gg - $iShift, $iHeight/2, $hPenPurpurThin) ; линия ноль-линия
	  _GDIPlus_GraphicsDrawLine($hBackbuffer1, $0pStartX, $iStartY, $0pEndX, $iEndY, $hPenBlueThin0) ; линия отрезка
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndSelect

EndFunc

Func grss1($1pStartX, $iStartY, $1pEndX, $iEndY)
	Select
		Case $Per >= $centrcen
;_GDIPlus_GraphicsDrawLine($hBackbuffer1, 12, $iHeight/2, $gg - $iShift, $iHeight/2, $hPenPurpurThin) ; линия ноль-линия
    _GDIPlus_GraphicsDrawLine($hBackbuffer1, $1pStartX, $iStartY, $1pEndX, $iEndY, $hPenBlueThin1) ; линия отрезка
     _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
	EndSelect
EndFunc
Func grss2($2pStartX, $iStartY, $2pEndX, $iEndY)
	Select
		Case $Per >= $centrcen

	 _GDIPlus_GraphicsDrawLine($hBackbuffer1, $2pStartX, $iStartY, $2pEndX, $iEndY, $hPenBlueThin2) ; линия отрезка
	  _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
	 EndSelect
EndFunc
Func grss3($3pStartX, $iStartY, $3pEndX, $iEndY)
	Select
		Case $Per >= $centrcen

	  _GDIPlus_GraphicsDrawLine($hBackbuffer1, $3pStartX, $iStartY, $3pEndX, $iEndY, $hPenBlueThin3) ; линия отрезка
     _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
	EndSelect
EndFunc
Func grss4($4pStartX, $iStartY, $4pEndX, $iEndY)
	Select
		Case $Per >= $centrcen

	   _GDIPlus_GraphicsDrawLine($hBackbuffer1, $4pStartX, $iStartY, $4pEndX, $iEndY, $hPenBlueThin2) ; линия отрезка
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
	EndSelect
EndFunc
Func grss5($5pStartX, $iStartY, $5pEndX, $iEndY)
	Select
		Case $Per >= $centrcen

	    _GDIPlus_GraphicsDrawLine($hBackbuffer1, $5pStartX, $iStartY, $5pEndX, $iEndY, $hPenBlueThin1) ; линия отрезка
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
EndSelect

EndFunc
Func grss6($6pStartX, $iStartY, $6pEndX, $iEndY)

	    _GDIPlus_GraphicsDrawLine($hBackbuffer1, $6pStartX, $iStartY, $6pEndX, $iEndY, $hPenBlueThin6) ; линия отрезка
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)

EndFunc

Func WM_ERASEBKGND()
    _GDIPlus_GraphicsDrawImageRect($hGraphic, $hBitmap, $iShift, 0, $gg, $iHeight)
	_GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
EndFunc

;===============================================================================================================

Func grss03()
	If $Per >= $iPer Then
		smenacveta1()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
    _GDIPlus_GraphicsDrawLine($hBackbuffer3, $03StartX, $3StartY, $03EndX, $3EndY, $hPenBlueThinz03) ; линия отрезка
     _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
 Else
	 smenacveta()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	  _GDIPlus_GraphicsDrawLine($hBackbuffer3, $03StartX, $3StartY, $03EndX, $3EndY, $hPenBlueThinz03) ; линия отрезка
     _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
	 EndIf
 EndFunc

Func grss13()
If $Per >= $iPer Then
	smenacveta1()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
    _GDIPlus_GraphicsDrawLine($hBackbuffer3, $13StartX, $3StartY, $13EndX, $3EndY, $hPenBlueThin13) ; линия отрезка
     _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
 Else
	 smenacveta()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	  _GDIPlus_GraphicsDrawLine($hBackbuffer3, $13StartX, $3StartY, $13EndX, $3EndY, $hPenBlueThin13) ; линия отрезка
     _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
	 EndIf
 EndFunc

Func grss23()
	If $Per >= $iPer Then
		smenacveta1()
		_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	 _GDIPlus_GraphicsDrawLine($hBackbuffer3, $23StartX, $3StartY, $23EndX, $3EndY, $hPenBlueThin23) ; линия отрезка
 _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
 Else
	 smenacveta()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	 _GDIPlus_GraphicsDrawLine($hBackbuffer3, $23StartX, $3StartY, $23EndX, $3EndY, $hPenBlueThin23) ; линия отрезка
 _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
	  EndIf
 EndFunc

Func grss33()
	If $Per >= $iPer Then
		smenacveta1()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	  _GDIPlus_GraphicsDrawLine($hBackbuffer3, $33StartX, $3StartY, $33EndX, $3EndY, $hPenBlueThin33) ; линия отрезка
     _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
 Else
	 smenacveta()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	 _GDIPlus_GraphicsDrawLine($hBackbuffer3, $33StartX, $3StartY, $33EndX, $3EndY, $hPenBlueThin33) ; линия отрезка
     _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
	 EndIf
 EndFunc

Func grss43()
	If $Per >= $iPer Then
		smenacveta1()
		_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	   _GDIPlus_GraphicsDrawLine($hBackbuffer3, $43StartX, $3StartY, $43EndX, $3EndY, $hPenBlueThin23) ; линия отрезка
  _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
 Else
	 smenacveta()
_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	  _GDIPlus_GraphicsDrawLine($hBackbuffer3, $43StartX, $3StartY, $43EndX, $3EndY, $hPenBlueThin23) ; линия отрезка
  _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
	 EndIf
 EndFunc

Func grss53()
	If $Per >= $iPer Then
		smenacveta1()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	    _GDIPlus_GraphicsDrawLine($hBackbuffer3, $53StartX, $3StartY, $53EndX, $3EndY, $hPenBlueThin13) ; линия отрезка
   _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
 Else
	 smenacveta()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	 _GDIPlus_GraphicsDrawLine($hBackbuffer3, $53StartX, $3StartY, $53EndX, $3EndY, $hPenBlueThin13) ; линия отрезка
   _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
	 EndIf
 EndFunc

Func grss63()
	If $Per >= $iPer Then
		smenacveta1()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	    _GDIPlus_GraphicsDrawLine($hBackbuffer3, $63StartX, $3StartY, $63EndX, $3EndY, $hPenBlueThinz03) ; линия отрезка
    _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
 Else
	 smenacveta()
	_GDIPlus_GraphicsDrawLine($hGraphic3, $ffx, $ffy, $ffxx, $ffyy, $hPenBlueThin03) ; удаление нарисованного
	  _GDIPlus_GraphicsDrawLine($hBackbuffer3, $63StartX, $3StartY, $63EndX, $3EndY, $hPenBlueThinz03) ; линия отрезка
    _GDIPlus_GraphicsDrawImageRect($hGraphic3, $hBitmap3, 0, 0, $iWidth3, $iHeight3)
	 EndIf
EndFunc

Func smenacveta()
 $hPenBlueThinz03 = _GDIPlus_PenCreate(0xFF8B0000,5) ; перо для полоса 0 линии
; $hPenBlueThin03 = _GDIPlus_PenCreate(0xccFF0000,5) ; перо для синей линии
 $hPenBlueThin13 = _GDIPlus_PenCreate(0xFFB22222,5) ; перо для синей линии
 $hPenBlueThin23 = _GDIPlus_PenCreate(0xFFFF0000,5) ; перо для синей линии
 $hPenBlueThin33 = _GDIPlus_PenCreate(0xFFFFFFFF,6) ; перо для синей линии
 $hPenBlueThin63 = _GDIPlus_PenCreate(0xFF8B0000, 5) ; ручка для  точки выкупа
EndFunc
Func smenacveta1()
 $hPenBlueThinz03 = _GDIPlus_PenCreate(0xFF808000,5) ; перо для полоса 0 линии
; $hPenBlueThin03 = _GDIPlus_PenCreate(0xccFF0000,5) ; перо для синей линии
 $hPenBlueThin13 = _GDIPlus_PenCreate(0xFFFFA500,5) ; перо для синей линии
 $hPenBlueThin23 = _GDIPlus_PenCreate(0xFFFFD700,5) ; перо для синей линии
 $hPenBlueThin33 = _GDIPlus_PenCreate(0xFFFFFFFF,6) ; перо для синей линии
 $hPenBlueThin63 = _GDIPlus_PenCreate(0xFF808000, 5) ; ручка для  точки выкупа
EndFunc
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Func vyx()
    Sleep (300)
    Exit
EndFunc


прошу помощи в решении этой задачи :smile:


Добавлено:
Сообщение автоматически объединено:

:smile: :laugh: :stars: :blum:


Добавлено:
Сообщение автоматически объединено:

up!
Похоже серьёзная задачка, раз никто пока не решил ;)
Так же есть ещё проблема с этим столбиком рисунков линий, после какого то времени, возможно происходит искажение координат для рисунка или ещё что то, но в общем кривые получаются :'(
для линий
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
dreamorder
не нужно апать тему менее чем через сутки с момента последнего сообщения.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Похоже серьёзная задачка, раз никто пока не решил

Задача не серьёзная, не интересная и давно решена http://autoit-script.ru/index.php/topic,11104.0.html
(см. кнопку $Button_Delete_last)

Учитесь пользоваться поиском.
:search:
 
Автор
D

dreamorder

Гость
Re: не могу \"стереть\" _GDIPlus_GraphicsDrawLine нарисованные линии

И так!
Во первых, эта тема ДЛЯ НОВИЧКОВ!!!
Во втрорых, не нужно кидать (Ваши) функции, а сделай! пожалуйста, спасибо пр рабочий пример) !!!!!!!!!!!!!!!!
Если СМОЖЗЕШШШШШШ )))))


Добавлено:
Сообщение автоматически объединено:

где пример тто?! "умник" ))
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
dreamorder,
Так не надо себя вести. Тема закрыта.
 
Статус
Закрыто для дальнейших ответов.
Верх