Jump to content

Search the Community

Showing results for tags 'guictrlcreategraphic'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • Forum FAQ
  • AutoIt

Calendars

  • Community Calendar

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Member Title


Location


WWW


Interests

Found 3 results

  1. Hello I have problem with my object drawn in gdi Func drawTriangle($tabName,$gui_active = 0) _GDIPlus_Startup() ;initialize GDI+ Local $hGraphics = _GDIPlus_GraphicsCreateFromHWND($sGUI[$gui_active]) ;create a graphics object from a window handle _GDIPlus_GraphicsSetSmoothingMode($hGraphics, $GDIP_SMOOTHINGMODE_HIGHQUALITY) ;sets the graphics object rendering quality (antialiasing) Local $hBrush = _GDIPlus_BrushCreateSolid(0xFFEFEFEF) ;color format AARRGGBB (hex) Local $aPoints[5][3] $aPoints[0][0] = 4 $aPoints[1][0] = 0.0 ; left $aPoints[1][1] = 0.0 ; top $aPoints[2][0] = 0.0 ; left $aPoints[2][1] = 30.0 ; top $aPoints[3][0] = 80.0 ; left $aPoints[3][1] = 30.0 ; top $aPoints[4][0] = 110.0 ; left $aPoints[4][1] = 0.0 ; top _GDIPlus_GraphicsFillPolygon($hGraphics, $aPoints, $hBrush) ;draw the triangle Local $fBrush = _GDIPlus_BrushCreateSolid(0xFFAAAAAA) ;color format AARRGGBB (hex) Local $sString = $tabName, $aInfo ; from the func param Local $hFormat, $hFamily, $hFont, $tLayout $hFormat = _GDIPlus_StringFormatCreate() $hFamily = _GDIPlus_FontFamilyCreate("Segoe UI") $hFont = _GDIPlus_FontCreate($hFamily, 12, 2) $tLayout = _GDIPlus_RectFCreate(6, 2) $aInfo = _GDIPlus_GraphicsMeasureString($hGraphics, $sString, $hFont, $tLayout, $hFormat) _GDIPlus_GraphicsDrawStringEx($hGraphics, $sString, $hFont, $aInfo[0], $hFormat, $fBrush) ;_GDIPlus_GraphicsDrawString($hGraphics, $tabName, 6, 3, "Segoe UI", 12) ; write text ;cleanup GDI+ resources _GDIPlus_FontDispose($hFont) _GDIPlus_FontFamilyDispose($hFamily) _GDIPlus_StringFormatDispose($hFormat) _GDIPlus_BrushDispose($hBrush) _GDIPlus_GraphicsDispose($hGraphics) _GDIPlus_Shutdown() EndFunc After this code execution I got new object rectangle Global $ma_border = GUICtrlCreateGraphic(100, 180, 40, 40) GUICtrlSetGraphic($ma_border, $GUI_GR_COLOR, 0x00000, $COLOR_BLUE) GUICtrlSetGraphic($ma_border, $GUI_GR_RECT, 0, 0, 40, 40) GUICtrlSetState(-1,$GUI_DISABLE) And what happens is first func = draw rectangle is pushed to parameters from GUICtrlCreateGraphic func. Left: 100, Top: 180. I can simplu reverse order of these func execution but There is too much things to change in my code. Can something be done to prevent this slipping?
  2. I think I am missing something obvious I want the "color bar" to stretch from side to side (entire width) of the GUI. On resize it must expand / contract as necessary. I guess the answer is easy, but I need a bit of help please? $hForm = GUICreate('myColor Picker', 300, 200,-1, -1, $WS_MAXIMIZEBOX + $WS_SYSMENU + $WS_CAPTION) ;color the GUI background ;GUISetBkColor($sColorformFile, $hForm) ; set the gui background color ;Local $mycolorLabel = GUICtrlCreateLabel("",10,10,300,10) ; a blank LABEL color bar Local $mycolorLabel = GUICtrlCreateGraphic( -1,-1,300,10) ; a blank GRAPHIC color bar GUICtrlSetResizing($mycolorLabel, $ws_sizebox);$GUI_DOCKMENUBAR);$GUI_DOCKAUTO) ;$GUI_DOCKBORDERS) GUICtrlSetBkColor($mycolorLabel,$sColorformFile) ; set the color for the label This is an extract from here, by @Yashied $hForm = GUICreate('myColor Picker', 300, 200,-1, -1, $WS_MAXIMIZEBOX + $WS_SYSMENU + $WS_CAPTION) ;color the GUI background ;GUISetBkColor($sColorformFile, $hForm) ; set the gui background color ;Local $mycolorLabel = GUICtrlCreateLabel("",10,10,300,10) ; a blank LABEL color bar Local $mycolorLabel = GUICtrlCreateGraphic( -1,-1,300,10) ; a blank GRAPHIC color bar GUICtrlSetResizing($mycolorLabel, $ws_sizebox);$GUI_DOCKMENUBAR);$GUI_DOCKAUTO) ;$GUI_DOCKBORDERS) GUICtrlSetBkColor($mycolorLabel,$sColorformFile) ; set the color for the label Specifically my issue is with that $mycolorLabel Thanks, Skysnake
  3. Trying to isolate the cause of my parent GUI's graphic becoming contaminated by closing of a child GUI. The example script below creates the parent GUI, then I click a button to display a digital clock, I use keys to start, pause & resume the clock. NOTE: to exit the clock display after the clock has started hold down the 'ESC' key for more than 3seconds. Upon the clock closing the contamination should be evident. #include <Misc.au3> #include <GUIConstants.au3> #include <Date.au3> HotKeySet("{ESC}", "_ExitClock");To Exit Digital Clock use "Esc" key held for >3sec Dim $aXY[2] Global $Init0, $PausedTimer, $iTimerHours, $iTimerMins, $iTimerSecs Global $sec = @SEC Global $hDLL = DllOpen("user32.dll") Global $iEvent = 0 Global $AlarmHour = 0 Global $AlarmMin = 0 Global $AlarmSec = 0 Global $SecSquare = GUICtrlCreateGraphic(0, 0, 0, 0) Global $ClockSquare = GUICtrlCreateGraphic(5, 5, 180, 30);Local Time Global $TimerSquare = GUICtrlCreateGraphic(205, 5, 220, 30);Timer Global $AlarmSquare = GUICtrlCreateGraphic(480, 5, 220, 30);Alarm Time Global $gui Dim $aDigChar[14] _initDigChar($aDigChar) ; Create a GUI with various controls. Local $Form1 = GUICreate("Example") Local $StartB = GUICtrlCreateButton("Use 'Alt+S' to start Clock", 130, 200, 150, 25) Local $PauseB = GUICtrlCreateButton("Use 'Alt+P' to pause Clock", 130, 250, 150, 25) Local $ResumeB = GUICtrlCreateButton("Use 'Alt+R' to resume Clock", 130, 300, 150, 25) GUICtrlSetState($StartB, $GUI_DISABLE) GUICtrlSetState($PauseB, $GUI_DISABLE) GUICtrlSetState($ResumeB, $GUI_DISABLE) Local $OK = GUICtrlCreateButton("Display Clock", 270, 370, 125, 25) ; Display the GUI. GUISetState(@SW_SHOW, $Form1) ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idOK ExitLoop Case $OK _DigitalClock() EndSwitch WEnd ; Delete the previous GUI and all controls. GUIDelete($Form1) Func _DigitalClock() $gui = GUICreate("Digital Timer", 702, 40, -1, -1, -1, $WS_EX_TOPMOST) ;$gui = GUICreate("Test", 702, 702) GUISetBkColor(0x000000) GUISetState() $SecSquare = GUICtrlCreateGraphic(0, 0, 0, 0) $ClockSquare = GUICtrlCreateGraphic(5, 5, 180, 30);Local Time $TimerSquare = GUICtrlCreateGraphic(205, 5, 220, 30);Timer $AlarmSquare = GUICtrlCreateGraphic(480, 5, 220, 30);Alarm Time Dim $msg[1] ;$AddMinutes = 10 While 1 ; main loop, waits until @sec changes and then executes main drawing management function While @SEC = $sec $msg = GUIGetMsg(1) If $msg[0] = -3 Then DllClose($hDLL) Return EndIf If _IsPressed("12", $hDLL) Then;'Alt' ConsoleWrite("_IsPressed - Alt Key was pressed." & @CRLF) ; Wait until key is released. While _IsPressed("12", $hDLL); If _IsPressed("53",$hDLL) Then;'s' ConsoleWrite("_IsPressed - 'o' Key was pressed." & @CRLF) start_timer() EndIf If _IsPressed("50",$hDLL) Then;'p' ConsoleWrite("_IsPressed - 'p' Key was pressed." & @CRLF) pause_timer() EndIf If _IsPressed("52",$hDLL) Then;'r' ConsoleWrite("_IsPressed - 'r' Key was pressed." & @CRLF) resume_timer() EndIf Sleep(300);(250) WEnd ElseIf _IsPressed("1B", $hDLL) Then MsgBox($MB_SYSTEMMODAL, "_IsPressed", "The Esc Key was pressed, therefore we will close the application.") ExitLoop EndIf Sleep(10) WEnd _draw() Sleep(50) $sec = @SEC WEnd EndFunc; ==> _DigitalCLock Func _ExitClock();Press Escape key for >5sec Local $Count = 0 If _IsPressed("1B",$hDLL) Then $Return = _KeyPressed("1B", $Count) ConsoleWrite("Escape Key Held for - " & $Return & "mS" & @CRLF) If $Return > 3000 Then DllClose($hDLL) AdlibUnRegister("show_timer") GUIDelete($gui) GUISetState(@SW_ENABLE, $Form1);enable parent GUI GUISetState(@SW_SHOW,$Form1) EndIf Endif EndFunc;==>_ExitClock() Func _KeyPressed($kp_Key, ByRef $kp_Count) $kp_Count += 1 Local $kp_Timer = TimerInit() While _IsPressed("1B") Sleep(100) WEnd Return TimerDiff($kp_Timer) EndFunc ;==>_KeyPressed ;################ Functions from StopwatchUDF.au3 ##################### ; The function that starts or resets the stopwatch Func start_timer() HotKeySet("{NUMPADMULT}") ;disable resume timer HotKeySet("{NUMPADSUB}", "pause_timer") ;enable pause timer $PausedTimer = 0 $Init0 = TimerInit() AdlibRegister("show_timer", 60) EndFunc ;==>start_timer ; The function that pauses the stopwatch Func pause_timer() HotKeySet("{NUMPADSUB}") ;disable pause timer HotKeySet("{NUMPADMULT}", "resume_timer") ;enable resume timer $PausedTimer += Int(TimerDiff($Init0)) AdlibUnRegister() EndFunc ;==>pause_timer ; The function that resumes the stopwatch Func resume_timer() HotKeySet("{NUMPADMULT}") ;disable resume timer HotKeySet("{NUMPADSUB}", "pause_timer") ;enable pause timer $Init0 = TimerInit() AdlibRegister("show_timer", 60) EndFunc ;==>resume_timer Func show_timer() ; _TicksToTime to get hours, mins, seconds _TicksToTime(Int(TimerDiff($Init0) + $PausedTimer), $iTimerHours, $iTimerMins, $iTimerSecs) ;StringFormat to display the time as HH:MM:SS ;ToolTip("HH:MM:SS = " & StringFormat("%02i:%02i:%02i", $iHours, $iMins, $iSecs), 0, 0, "Timer") EndFunc ;==>show_timer ; Exit Func Quit() Exit EndFunc ;==>Quit ;################ Functions from StopwatchUDF.au3 ##################### Func _draw($forceDraw = False) ; calculates angles for min/sec dials, manages execution of drawing routines Local $doDraw = False Sleep(25) ;_drawSec() _DrawClock() _DrawTimer();Digital Cue Timer 00:00:00 _DrawAlarmTime($iEvent);Event no. in Sequence with Hints in test string GUICtrlSetGraphic($SecSquare, $GUI_GR_REFRESH) EndFunc ;==>_draw ;#cs Func _DrawClock();Digital System Time ;return ; manages execution of write commands for HH MM SS characters GUICtrlDelete($ClockSquare) $ClockSquare = GUICtrlCreateGraphic(5, 5, 180, 30);5, 5, 200, 30 _timeWrite(0, Int(@HOUR / 10), "regular", $ClockSquare);e.g. 1pm = 13 /10 =1 _timeWrite(20, Mod(@HOUR, 10), "regular", $ClockSquare);e.g. 1pm = 13Mod10 = 1 with 3 remainder _timeWrite(50, Int(@MIN / 10), "regular", $ClockSquare) _timeWrite(70, Mod(@MIN, 10), "regular", $ClockSquare) _timeWrite(100, Int(@SEC / 10), "regular", $ClockSquare) _timeWrite(120, Mod(@SEC, 10), "regular", $ClockSquare) EndFunc ;==>_drawTime ;#ce Func _DrawTimer();Digital Cue Timer 00:00:00 ;return ; manages execution of write commands for HH MM SS characters GUICtrlDelete($TimerSquare) $TimerSquare = GUICtrlCreateGraphic(205, 5, 220, 30);Timer _timeWrite(0, 13, "Timer", $TimerSquare);C _timeWrite(20, 11, "Timer", $TimerSquare);L _timeWrite(50, 12, "Timer", $TimerSquare);- _timeWrite(80, Int($iTimerHours / 10), "Timer", $TimerSquare) _timeWrite(100, Mod($iTimerHours, 10), "Timer", $TimerSquare) _timeWrite(130, Int($iTimerMins / 10), "Timer", $TimerSquare) _timeWrite(150, Mod($iTimerMins, 10), "Timer", $TimerSquare) _timeWrite(180, Int($iTimerSecs / 10), "Timer", $TimerSquare) _timeWrite(200, Mod($iTimerSecs, 10), "Timer", $TimerSquare) EndFunc ;==>_drawTime ;#cs Func _drawAlarmTime($iEvent);Digital Time ;Return ; manages execution of write commands for HH MM SS characters for the Alarm time GUICtrlDelete($AlarmSquare) $AlarmSquare = GUICtrlCreateGraphic(480, 5, 220, 30) _timeWrite(0, 10, "Alarm", $AlarmSquare);A _timeWrite(20, 11, "Alarm", $AlarmSquare);L _timeWrite(50, 12, "Alarm", $AlarmSquare);- _timeWrite(80, Int($AlarmHour / 10), "Alarm", $AlarmSquare) _timeWrite(100, Mod($AlarmHour, 10), "Alarm", $AlarmSquare) _timeWrite(130, Int($AlarmMin / 10), "Alarm", $AlarmSquare) _timeWrite(150, Mod($AlarmMin, 10), "Alarm", $AlarmSquare) _timeWrite(180, Int($AlarmSec / 10), "Alarm", $AlarmSquare) _timeWrite(200, Mod($AlarmSec, 10), "Alarm", $AlarmSquare) EndFunc ;==>_drawAlarmTime ;#ce Func _timeWrite($pos, $num, $type, $graph) ; $type is "Regular" or "Alarm" or "Timer" ; manages coloring and writing of 7 segement LEDs for time writing _setColorAndPenForWrite(StringMid($aDigChar[$num], 1, 1), $type);0 _line($graph, $pos + 5, 2, $pos + 3, 10) _setColorAndPenForWrite(StringMid($aDigChar[$num], 2, 1), $type);1 _line($graph, $pos + 2, 14, $pos + 0, 22) _setColorAndPenForWrite(StringMid($aDigChar[$num], 3, 1), $type);2 _line($graph, $pos + 5 + 2, 0, $pos + 5 + 8, 0) _setColorAndPenForWrite(StringMid($aDigChar[$num], 4, 1), $type);3 _line($graph, $pos + 2 + 2, 12, $pos + 2 + 8, 12) _setColorAndPenForWrite(StringMid($aDigChar[$num], 5, 1), $type);4 _line($graph, $pos + 2, 24, $pos + 8, 24) _setColorAndPenForWrite(StringMid($aDigChar[$num], 6, 1), $type);5 _line($graph, $pos + 5 + 10, 2, $pos + 3 + 10, 10) _setColorAndPenForWrite(StringMid($aDigChar[$num], 7, 1), $type);6 _line($graph, $pos + 2 + 10, 14, $pos + 10, 22) EndFunc ;==>_timeWrite ;#cs Func _line($graph, $x1, $y1, $x2, $y2);Seven Segment Display ;Return ; draws line for time writing GUICtrlSetGraphic($graph, $GUI_GR_MOVE, $x1 + 2, $y1 + 2) GUICtrlSetGraphic($graph, $GUI_GR_LINE, $x2 + 2, $y2 + 2) EndFunc ;==>_line ;#ce Func _setColorAndPenForWrite($char, $type) ; sets color and pen for next line in time writing, based on '0' or '1' in the DigChar array If $char = "1" Then;7 Segment display ON=1 or OFF=0 If $type = "Alarm" Then GUICtrlSetGraphic($AlarmSquare, $GUI_GR_PENSIZE, 2) GUICtrlSetGraphic($AlarmSquare, $GUI_GR_COLOR, 0xCCCCCC, 0xCCCCCC) ElseIf $type = "Timer" Then GUICtrlSetGraphic($TimerSquare, $GUI_GR_PENSIZE, 2) GUICtrlSetGraphic($TimerSquare, $GUI_GR_COLOR, 0x00ff00, 0x00ff00);ct - Bright Green RGB Else GUICtrlSetGraphic($ClockSquare, $GUI_GR_PENSIZE, 2) GUICtrlSetGraphic($ClockSquare, $GUI_GR_COLOR, 0xEE0000, 0xEE0000) EndIf Else If $type = "Alarm" Then GUICtrlSetGraphic($AlarmSquare, $GUI_GR_PENSIZE, 2) GUICtrlSetGraphic($AlarmSquare, $GUI_GR_COLOR, 0x222222, 0x222222) ElseIf $type = "Timer" Then;ct GUICtrlSetGraphic($TimerSquare, $GUI_GR_PENSIZE, 2) GUICtrlSetGraphic($TimerSquare, $GUI_GR_COLOR, 0x002200, 0x002200);ct - Lite Green RGB Else GUICtrlSetGraphic($ClockSquare, $GUI_GR_PENSIZE, 2) GUICtrlSetGraphic($ClockSquare, $GUI_GR_COLOR, 0x330000, 0x330000) EndIf EndIf EndFunc ;==>_setColorAndPenForWrite Func _drawSec() Return ; draws circle seconds indicator $aXY = _getXY(@SEC, 240) GUICtrlDelete($SecSquare) $SecSquare = GUICtrlCreateGraphic(350 + $aXY[0] - 8, 350 + $aXY[1] - 8, 16, 16) GUICtrlSetGraphic($SecSquare, $GUI_GR_COLOR, 0x0000FF, 0x0000FF) GUICtrlSetGraphic($SecSquare, $GUI_GR_ELLIPSE, 0, 0, 16, 16) EndFunc ;==>_drawSec Func _getXY($sec, $hypo) ; returns array with X,Y coordinates for the seconds points for $sec seconds, with $hypo(tenuse) distance from center Dim $result[2] Local $pi = 3.14159265358979 Local $degToRad = $pi / 180 Local $degrees = $sec * 6 - 90 Local $x = Cos($degrees * $degToRad) * $hypo Local $y = Sin($degrees * $degToRad) * $hypo $result[0] = $x $result[1] = $y Return $result EndFunc ;==>_getXY Func _initDigChar(ByRef $aDigChar) ; define leds for digital numbers: 1 or 0 for leds on/off in 7-led digital clock characters $aDigChar[0] = "1110111" $aDigChar[1] = "0000011" $aDigChar[2] = "0111110" $aDigChar[3] = "0011111" $aDigChar[4] = "1001011" $aDigChar[5] = "1011101" $aDigChar[6] = "1111101" $aDigChar[7] = "0010011" $aDigChar[8] = "1111111" $aDigChar[9] = "1011111" $aDigChar[10] = "1111011" ; A $aDigChar[11] = "1100100" ; L $aDigChar[12] = "0001000" ; - $aDigChar[13] = "1110100" ;C EndFunc ;==>_initDigChar Any help appreciated Thanks Chris
×
×
  • Create New...