Что нового

[Элементы GUI] Работа с Tab

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Нужно чтоб при переключении таба активировался MsgBox(), но это не происходит

Код:
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 573, 302, 232, 166)
$Tab1 = GUICtrlCreateTab(88, 56, 289, 193)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
GUICtrlSetState(-1,$GUI_SHOW)
$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
$TabSheet4 = GUICtrlCreateTabItem("TabSheet4")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $TabSheet4
			MsgBox(0,'',4)
	EndSwitch
WEnd
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Код:
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiTab.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 573, 302, 232, 166)
$Tab1 = GUICtrlCreateTab(88, 56, 289, 193)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
GUICtrlSetState(-1,$GUI_SHOW)
$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
$TabSheet4 = GUICtrlCreateTabItem("TabSheet4")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Tab1
           If  _GUICtrlTab_GetItemState($Tab1, 3) =  $TCIS_BUTTONPRESSED Then MsgBox(0,'',4)
        EndSwitch
WEnd

msgbox выскакивает, если выбрать четвертый TabItem
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Или так еще:

Код:
#include <GUIConstantsEx.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#Include <GuiTab.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 573, 302, 232, 166)
$Tab1 = GUICtrlCreateTab(88, 56, 289, 193)
$TabSheet1 = GUICtrlCreateTabItem("TabSheet1")
$TabSheet2 = GUICtrlCreateTabItem("TabSheet2")
GUICtrlSetState(-1,$GUI_SHOW)
$TabSheet3 = GUICtrlCreateTabItem("TabSheet3")
$TabSheet4 = GUICtrlCreateTabItem("TabSheet4")
GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Tab1
           $ind =  _GUICtrlTab_GetCurSel($Tab1)
           $sText = _GUICtrlTab_GetItemText($Tab1,$ind )
           If  _GUICtrlTab_GetItemState($Tab1, $ind ) =  $TCIS_BUTTONPRESSED Then MsgBox(0,'',"Выбран Таб:  " & $sText)
        EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
VladUs,
Код:
;Вместо
;...
If  _GUICtrlTab_GetItemState($Tab1, 3) =  $TCIS_BUTTONPRESSED Then MsgBox(0,'',4)
;...
;Проще будет
;...
If GUICtrlRead($Tab1) = 3 Then MsgBox(0, '', 4)
;...

Пример:
Код:
#include <GUIConstantsEx.au3>

Dim $aTab[10][2] = [['Один'],['Два'],['Три'],['Четыре'],['Пять'],['Шесть'],['Семь'],['Восемь'], _
		['Девять'],['Десять']]

GUICreate('Test', 500, 200)
$nTab = GUICtrlCreateTab(10, 10, 480, 180)
For $i = 0 To UBound($aTab) - 1
	$aTab[$i][1] = GUICtrlCreateTabItem($aTab[$i][0])
	If $i = 3 Then GUICtrlSetState(-1, $GUI_SHOW)
Next
GUICtrlCreateTabItem('')
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nTab
			MsgBox(64, 'Info', 'Открыт TabItem: ' & $aTab[GUICtrlRead($nTab)][0])
	EndSwitch
WEnd
 
Верх