matrix200 Posted December 17, 2006 Posted December 17, 2006 Here is a code to illustrate that problem. CODE #include <GUIConstants.au3> Global $val = 10 Global $graphic = 0 Global $needle1 = 0 Global $inputv Global $inputVol = 0 Global $gui = 0 Global $green = 0x00FF00 Global $red = 0xFF0000 Global $yellow = 0xffff00 Global $gray = 0xD4D0C8 Global $aqua = 0x00ffff Global $struct = DllStructCreate("long;long;long;long") Global $group Func DrawDial($left , $top , $basescale , $title , $units , ByRef $value , ByRef $needle , $scale = 1 , $leftG = 20, $rightG = 70) $group = GuiCreate(" " & $title , 150 , 120 , $left , $top, BitOr($WS_CHILD,$WS_DLGFRAME), BitOr($WS_EX_MDICHILD,$WS_EX_CLIENTEDGE),$gui) ;GuiCtrlCreateLabel("test label",10,10) ;GuiSetState(@SW_SHOW,$group) ;return ;$group1 = GUICtrlCreateGroup( $title , 0 , 0 , 150 ,120 , Bitor( $BS_CENTER,0) ) GuiCtrlCreateLabel($title,40,0) for $x = 0 to 100 step 10 if StringinStr($x / 20,".") = 0 Then GUICtrlCreateLabel("",$x * 1.2 + 15 , 15 , 1 , 15 , $SS_BLACKRECT) GuiCtrlSetState(-1,$GUI_DISABLE) if $x < 100 Then $test = GUICtrlCreateLabel("",$x * 1.2 + 16,15 , 11 , 5 , 0 ) GuiCtrlSetState(-1,$GUI_DISABLE) if $x < $rightG and $x > $leftG then GUICtrlSetBkColor($test , 0x00ff00) Else GUICtrlSetBkColor($test , 0xff0000) EndIf EndIf $scalevalue = $basescale + $x / $scale if ($x == 0 and $scalevalue > 99 ) or ( $scalevalue <100 and $scalevalue > 9 ) then GUICtrlCreateLabel( $scalevalue , $x * 1.2 + 8, 25 ,20,10,Bitor($SS_LEFTNOWORDWRAP,$GUI_SS_DEFAULT_LABEL) ) ;GuiCtrlSetState(-1,$GUI_DISABLE) Else if $scalevalue < 10 Then GUICtrlCreateLabel($scalevalue , $x * 1.2 + 16, 25 ,20,10,Bitor($SS_LEFTNOWORDWRAP,$GUI_SS_DEFAULT_LABEL)) Else GUICtrlCreateLabel($scalevalue , $x * 1.2 + 8, 25 ,20,10,Bitor($SS_LEFTNOWORDWRAP,$GUI_SS_DEFAULT_LABEL)) EndIf ;GuiCtrlSetState(-1,$GUI_DISABLE) EndIf GUICtrlSetFont(-1,7) Else GUICtrlCreateLabel("",$x * 1.2 + 15 , 15 , 1 , 5 , $SS_BLACKRECT ) GuiCtrlSetState(-1,$GUI_DISABLE) $test = GUICtrlCreateLabel("", $x *1.2 + 16 ,15 , 11 , 5 , 0 ) ;GuiCtrlSetState(-1,$GUI_DISABLE) if $x < $rightG and $x > $leftG then GUICtrlSetBkColor($test , 0x00ff00) Else GUICtrlSetBkColor($test , 0xff0000) EndIf EndIf Next $value = GUICtrlCreateLabel(0 , 5 ,100 , 60 , 15 ) $label2 = GUICtrlCreateLabel($units , 135 ,100 , 20 , 15 ) $needle = GUICtrlCreateGraphic(10 ,35 , 120 , 80 ) $fill = GuiCtrlCreateGraphic(0 , 0 , 150 , 120) GuiSetState(@SW_SHOW,$group) ;GuiCtrlSetBkColor(-1,0x00ffff) EndFunc $gui = GUICreate("UPS Monitor", 608 + 25, 338, -1 , -1,BitOr($WS_CLIPCHILDREN,$GUI_SS_DEFAULT_GUI )) DrawDial(136 + 25, 70 , 170 , "Input Voltage" , "V" , $inputv , $needle1 , 1) ;GuiRegisterMsg(0x000F,"rePaint") ;DrawError(136 + 25 , 70 , "NOT CONNECTED" ) ;Update() GUISetState(@SW_SHOW,$gui) #EndRegion ### END Koda GUI section ### ;AdlibEnable("Update",1000) While 1 $nMsg = GUIGetMsg(1) if $nMsg[0] == $GUI_EVENT_CLOSE and $nMsg[1]==$gui then Exit EndIf WEnd The child window where I draw the scale and everything is gone (just gray background shown) after I minimize and restore the main gui window.
GaryFrost Posted December 17, 2006 Posted December 17, 2006 try: $group = GUICreate(" " & $title, 150, 120, $left, $top, BitOR($WS_CHILD, $WS_DLGFRAME), $WS_EX_CLIENTEDGE, $gui) SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference.
matrix200 Posted December 17, 2006 Author Posted December 17, 2006 Wow thanks man it works. Still don't understand why mine didn't work though? Is it because it is $WS_DLGFRAME ?
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now