AustrianOak Posted July 20, 2008 Share Posted July 20, 2008 I don't know if you've ever used rainlendar before but I have a question about how it doe sosmething. In the options window they have what seems to be an image in a row at the top like in the picture below: and everytime I click on different sections of it it simulates a tab item and it switches to a different tab. My question is how to do this like rainlendar does it. I don't want to use tabs, I want to copy what it does because I have a much better looking image than regular tabs. A lot of programs do this, but I can only think of this one. Look at the picture to to understand what I mean. Link to comment Share on other sites More sharing options...
ProgAndy Posted July 20, 2008 Share Posted July 20, 2008 I think it is a GUI like this: -ParentGUI with Image-Buttons to change "tabs" -some child GUIs which hold the controls for the Tabs and get hidden shown *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
AustrianOak Posted July 20, 2008 Author Share Posted July 20, 2008 So whenever I click on the child guis it will hide everything else and then show its own controls? Link to comment Share on other sites More sharing options...
ProgAndy Posted July 20, 2008 Share Posted July 20, 2008 (edited) Right. Example: expandcollapse popup#include <GUIConstants.au3> #include <WindowsConstants.au3> Global $OptionPages[5][2]; 5 Pages , for each page button + GUI #region - GUI Create $parent = GUICreate('PArent',200,240) $OptionPages[0][0] = GUICtrlCreateButton("1",10,10,30,30) $OptionPages[1][0] = GUICtrlCreateButton("2",50,10,30,30) $OptionPages[2][0] = GUICtrlCreateButton("3",90,10,30,30) $OptionPages[3][0] = GUICtrlCreateButton("4",130,10,30,30) $OptionPages[4][0] = GUICtrlCreateButton("5",170,10,30,30) $OptionPages[0][1] = GUICreate("Option1",200,200,0,40,$WS_CHILD,0,$parent) GUISetBkColor(0xFFFFFF) GUICtrlCreateLabel("hallo",10,10) $OptionPages[1][1] = GUICreate("Option2",200,200,0,40,$WS_CHILD,0,$parent) GUISetBkColor(0xFFFF00) GUICtrlCreateEdit("kjkkkk",10,40) $OptionPages[2][1] = GUICreate("Option3",200,200,0,40,$WS_CHILD,0,$parent) GUISetBkColor(0x00FFFF) $OptionPages[3][1] = GUICreate("Option4",200,200,0,40,$WS_CHILD,0,$parent) GUISetBkColor(0x000000) $OptionPages[4][1] = GUICreate("Option5",200,200,0,40,$WS_CHILD,0,$parent) GUISetBkColor(0xFF0000) GUISwitch($parent) GUISetState() #endregion #region - GUI SelectLoop While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit Case Else $newpage = _CheckOptionPages($msg) If $newpage Then ConsoleWrite($newpage & @CRLF) EndSelect WEnd #endregion Func _CheckOptionPages($msg) For $i = 0 To UBound($OptionPages)-1 If $msg = $OptionPages[$i][0] And BitAND(WinGetState($OptionPages[$i][1]),2) <> 2 Then Return _SwitchToPage($i) ExitLoop EndIf Next EndFunc Func _SwitchToPage($page) If $page >= UBound($OptionPages) Then Return SetError(1,0,0) For $i = 0 To UBound($OptionPages)-1 GUISetState(@SW_HIDE,$OptionPages[$i][1]) Next GUISetState(@SW_SHOW,$OptionPages[$page][1]) Return $page+1 EndFunc Edited July 20, 2008 by ProgAndy *GERMAN* [note: you are not allowed to remove author / modified info from my UDFs]My UDFs:[_SetImageBinaryToCtrl] [_TaskDialog] [AutoItObject] [Animated GIF (GDI+)] [ClipPut for Image] [FreeImage] [GDI32 UDFs] [GDIPlus Progressbar] [Hotkey-Selector] [Multiline Inputbox] [MySQL without ODBC] [RichEdit UDFs] [SpeechAPI Example] [WinHTTP]UDFs included in AutoIt: FTP_Ex (as FTPEx), _WinAPI_SetLayeredWindowAttributes Link to comment Share on other sites More sharing options...
AustrianOak Posted July 20, 2008 Author Share Posted July 20, 2008 Cool! Thanks. Link to comment Share on other sites More sharing options...
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