Xavier Posted October 13, 2005 Posted October 13, 2005 Hi all,I'm trying to have a Gui with 2 set of Tabs and i can't get it. The second set is created next to the first.I'd like to have a set a tab up and one down without nesting them.Here is the code i have processed:#include <GUIConstants.au3>GUICreate("My GUI Tabs") $tab=GUICtrlCreateTab (10,10, 200,100)$tab0=GUICtrlCreateTabitem ("tab0")$tab1=GUICtrlCreateTabitem ( "tab----1")$tab2=GUICtrlCreateTabitem ("tab2")GUICtrlCreateTabitem ("") ; end tabitem definition$2ndtab=GUICtrlCreateTab (10,300, 200,100)$2ndtab0=GUICtrlCreateTabitem ("2ndtab0")$2ndtab1=GUICtrlCreateTabitem ( "2ndtab----1")$2ndtab2=GUICtrlCreateTabitem ("2ndtab2")GUICtrlCreateTabitem ("") ; end tabitem definitionGUISetState ()While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoopWendThx all for any help
Valuater Posted October 13, 2005 Posted October 13, 2005 maybe this#include <GUIConstants.au3>Global Const $TCM_SETIMAGELIST = 0x1303Global Const $TCM_SETITEM = 0x1306; Disable visual styles for controls;DllCall("uxtheme.dll", "none", "SetThemeAppProperties", "int", 1)Global $hImageList = 0$main_GUI = GUICreate("Tab Sample", 400, 300, -1, -1);, BitOr($GUI_SS_DEFAULT_GUI,$WS_CLIPSIBLINGS))$ok_button = GUICtrlCreateButton("OK", 110, 270, 70, 20)$cancel_button = GUICtrlCreateButton("Cancel", 220, 270, 70, 20)GUISetState(); Creates the first child window that is implemented into the main GUI$child1 = GUICreate("", 370, 215, 15, 40, BitOr($WS_CHILD,$WS_TABSTOP), -1, $main_GUI);GUISetBkColor(0x257788); just for dimensing the child$child1_tab = GUICtrlCreateTab(0, 0, 370, 215)$child1_tabitem1 = GUICtrlCreateTabItem("Child1Tab1")$child1_tabitem2 = GUICtrlCreateTabItem("Child1Tab2")$child1_tabitem3 = GUICtrlCreateTabItem("Child1Tab3")GUICtrlCreateTabItem("")GUISetState(); Creates the second child window that is implemented into the main GUI$child2 = GUICreate("", 370, 215, 15, 40, BitOr($WS_CHILD,$WS_TABSTOP), -1, $main_GUI);GUISetBkColor(0x257788); just for dimensing the child$child3 = GUICreate("", 210, 220, 158, 0, BitOr($WS_CHILD,$WS_TABSTOP), -1, $child2);GUISetBkColor(0x257788)$listview = GUICtrlCreateListView("Col1|Col2", 0, 2, 210, 211, BitOr($LVS_NOSORTHEADER,$LVS_SHOWSELALWAYS,$WS_TABSTOP), $WS_EX_CLIENTEDGE)GUICtrlCreateListViewItem("ItemLong1|ItemLong2", $listview)GUICtrlCreateListViewItem("ItemLong3|ItemLong4", $listview)GUICtrlCreateListViewItem("ItemLong5|ItemLong6", $listview)GUISetState()GUISwitch($child2)$child2_tab = GUICtrlCreateTab(0, 0, 156, 215)$child2_tabitem1 = GUICtrlCreateTabItem("Child2Tab1")$child2_tabitem2 = GUICtrlCreateTabItem("Child2Tab2")GUICtrlCreateTabItem(""); Switch back the main GUI and create the tabsGUISwitch($main_GUI)$main_tab = GUICtrlCreateTab(10, 10, 380, 250)$main_tabitem1 = GUICtrlCreateTabItem("MainTab1")$main_tabitem2 = GUICtrlCreateTabItem("MainTab2")GUICtrlCreateTabItem("")GUICtrlSetState($main_tabitem1,$GUI_SHOW)Bind_ImageList($main_tab)While 1 $msg = GUIGetMsg(1) Select Case $msg[0] = $GUI_EVENT_CLOSE Or $msg[0] = $cancel_button ExitLoop Case $msg[0] = $main_tab $tabidx = GUICtrlRead($main_tab) Select Case $tabidx = 0 GUISetState(@SW_HIDE, $child2) GUISetState(@SW_SHOW, $child1) Case $tabidx = 1 GUISetState(@SW_HIDE, $child1) GUISetState(@SW_SHOW, $child2) EndSelect EndSelectWEndDllCall("comctl32.dll", "int", "ImageList_Destroy", "hwnd", $hImageList)ExitFunc ImageList_Create() $hImageList = DllCall("comctl32.dll", "hwnd", "ImageList_Create", "int", 16, "int", 16, "int", 0x0021, "int", 0, "int", 1) $hImageList = $hImageList[0] Return $hImageListEndFuncFunc Bind_ImageList($nCtrl) $hImageList = ImageList_Create() GUICtrlSendMsg($nCtrl, $TCM_SETIMAGELIST, 0, $hImageList) $szIconFile = "shell32.dll" $tcitem = DllStructCreate("uint;dword;dword;ptr;int;int;int") DllStructSetData($tcitem, 1, 0x0002) DllStructSetData($tcitem, 6, 0) AddImageToTab($nCtrl, 0, $tcitem, $szIconFile, 12) DllStructSetData($tcitem, 6, 1) AddImageToTab($nCtrl, 1, $tcitem, $szIconFile,21) DllStructDelete($tcitem)EndFuncFunc AddImageToTab($nCtrl, $nTabIndex, $nItem, $szIconFile, $nIconID) $hIcon = DllStructCreate("int") $result = DllCall("shell32.dll", "int", "ExtractIconEx", "str", $szIconFile, "int", $nIconID, "hwnd", 0, "ptr", DllStructGetPtr($hIcon), "int", 1) $result = $result[0] If $result > 0 Then DllCall("comctl32.dll", "int", "ImageList_AddIcon", "hwnd", $hImageList, "hwnd", DllStructGetData($hIcon,1)) DllCall("user32.dll", "int", "SendMessage", "hwnd", ControlGetHandle($main_GUI, "", $nCtrl), "int", $TCM_SETITEM, "int", $nTabIndex, "ptr", DllStructGetPtr($nItem)) DllCall("user32.dll", "int", "DestroyIcon", "hwnd", $hIcon) EndIf DllStructDelete($hIcon)EndFunc[code=auto:0]requires beta8)
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