Что нового

[Окна, Диалоги] Обновляющиеся данные в окне/вкладке окна

Firestarter

Новичок
Сообщения
54
Репутация
0
Добрый день знатоки.
Есть такой скрипт

Код:
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>

$hForm = GUICreate('MyGUI', 400, 400)
$PageControl1 = GUICtrlCreateTab(8, 8, 360, 190)
$TabSheet1 = GUICtrlCreateTabItem("Общие")

$hLabel = _WinAPI_CreateWindowEx(0, 'Static', '', BitOR($WS_CHILD, $WS_VISIBLE), 20, 40, 90, 14, $hForm)

$TabSheet2 = GUICtrlCreateTabItem("Внешние")

GUISetState()

Do
    _WinAPI_SetWindowText($hLabel, Random(0, 100, 1))
    Sleep(100)
Until GUIGetMsg() = -3

_WinAPI_DestroyWindow($hLabel)


Проблема в том, что рандомное число отображается на всех вкладках окна, а нужно как-то прикрепить к одной из вкладок, чтобы отображалось только в одной из.
Помогите пжл
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Firestarter,
А если так сделать?
Код:
#include <WinAPI.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>

Global $ahLabel[2], $iCurrentTab = 0xFF0000, $fWork

$hForm = GUICreate('MyGUI', 400, 270)
$nPageControl1 = GUICtrlCreateTab(8, 8, 360, 190)
$nTabSheet1 = GUICtrlCreateTabItem('Общие')
GUICtrlCreateLabel('', 20, 40, 50, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 10, 700)
GUICtrlSetBkColor(-1, $iCurrentTab - 0x323334)
GUICtrlSetColor(-1, $iCurrentTab)
$ahLabel[0] = GUICtrlGetHandle(-1)
$nTabSheet2 = GUICtrlCreateTabItem('Внешние')
GUICtrlCreateLabel('', 120, 40, 50, 20, BitOR($SS_CENTER, $SS_CENTERIMAGE))
GUICtrlSetFont(-1, 10, 700)
GUICtrlSetBkColor(-1, $iCurrentTab - 0x101112)
GUICtrlSetColor(-1, BitShift($iCurrentTab, 16))
$ahLabel[1] = GUICtrlGetHandle(-1)
GUICtrlCreateTabItem('')
$nBtn = GUICtrlCreateButton('Click me', 170, 220, 60)
GUISetState()

$iCurrentTab = GUICtrlRead($nPageControl1)
AdlibRegister('_LabelChange', 100)

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nPageControl1
			$iCurrentTab = GUICtrlRead($nPageControl1)
		Case $nBtn
			$fWork = Not $fWork
	EndSwitch
WEnd

Func _LabelChange()
	If Not $fWork Then Return
	Local $a_Rand[2][2] = [[0, 100],[1000, 10000]]
	_WinAPI_SetWindowText($ahLabel[$iCurrentTab], Random($a_Rand[$iCurrentTab][0], $a_Rand[$iCurrentTab][1], 1))
EndFunc   ;==>_LabelChange
 
Верх