Что нового

[Элементы GUI] как совместить эти два кода вместе

VermanVendetta13

Новичок
Сообщения
147
Репутация
0
Привет еще раз всем, надеюсь что еще никому не надоел своими вопросами, но все же.
Не получается совместить два кода между собой. работает либо один из них либо не работает вообще

подскажите как их объеденить

1 это окна

Код:
#include <GUIConstants.au3>






;Обязательно задавать элементам -1, чтобы небыло ложного срабатывания событий в случае если (ещё) не создан элемент присваеваемый данной переменной
Global $nChildGUI_Close_Bttn = -1

$hMain_GUI = GUICreate("Main GUI", 500, 500)

Global $defaultstatus = "Готов"
Global $status



GUICtrlCreateLabel ("Добро",  10, 30, 50)
GUICtrlCreateLabel ("пожаловать", 47, 30, 60)



$nChild_Button = GUICtrlCreateButton("Начать читать", 20, 400, 100, 20)
$cancelbutton = GUICtrlCreateButton ("Выход",180,130,70,20)
GUISetState(@SW_SHOW, $hMain_GUI)

;Создаём дочерний GUI, не отображая его на экране

$hChild_GUI = _ChildGUI_Create($hMain_GUI)

While 1


;Обработка событий в расширенном режиме
$aMsg = GUIGetMsg(1)

 Switch $aMsg[0]
 Case $GUI_EVENT_CLOSE
 ;Проверяем если "событие закрытия" поступило с главного-родительского GUI
 If $aMsg[1] = $hMain_GUI Then Exit

 ;Если "событие закрытия" поступило с дочернего GUI, то просто прячем его
If $aMsg[1] = $hChild_GUI Then
 GUISetState(@SW_HIDE, $hChild_GUI)
 EndIf
 Case $nChild_Button
 ;Показываем дочерний GUI при нажатий на кнопку "Child"
 GUISetState(@SW_SHOW, $hChild_GUI)
 If Not WinActive($hChild_GUI) Then WinActivate($hChild_GUI)
 Case $nChildGUI_Close_Bttn
 MsgBox(64, 'Message', 'Child GUI "Close" button pressed, closing the child...', 3)
 GUISetState(@SW_HIDE, $hChild_GUI)
 Case $cancelbutton
	Exit
 EndSwitch


WEnd



Func _ChildGUI_Create($hParent)
 Local $hChild_GUI

 $hChild_GUI = GUICreate("Child GUI", 500, 500, -1, -1, -1, -1, $hParent)

 ;Создаём элементы тут
$nChildGUI_Close_Bttn = GUICtrlCreateButton("Close", 20, 170, 60, 20)

 Return $hChild_GUI
EndFunc



2 это запрет комбинаций

Код:
#Include <HotKey.au3>

	;Запрет некоторых комбинаций
Global Const $VK_ESCAPE = 0x1B
Global Const $VK_F12 = 0x7B
Global Const $VK_C = 0x43
Global Const $VK_SNAPSHOT = 0x2C

; Assign "F12" with Message() and set extended function call
_HotKey_Assign($VK_F12, 'Message', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))

; Assign "CTRL-ESC" with Quit()
_HotKey_Assign(BitOR($CK_CONTROL, $VK_ESCAPE), 'Quit')

_HotKey_Assign(BitOR($CK_CONTROL, $VK_C), 'Qt')
_HotKey_Assign(BitOR($CK_CONTROL, $VK_SNAPSHOT), 'Qt')

While 1
    Sleep(10)
WEnd

Func Message($iKey)
    MsgBox(0, 'Hot key Test Message', 'F12 (0x' & Hex($iKey, 4) & ') has been pressed!')
EndFunc   ;==>Message

Func Qt()
 MsgBox(0, 'Ошибка', 'В доступе отказано!')
EndFunc

Func Quit()
    Exit
EndFunc   ;==>Quit
; Конец запрета


оба кода нашел и переделал. по отдельности работают как надо.

надеюсь искренне на помощь :stars:
 

Ksaan

Знающий
Сообщения
207
Репутация
15
Возможно я не совсем понял что ты хотел.
Код:
#include <GUIConstants.au3>
#Include <HotKey.au3>

 ;Запрет некоторых комбинаций
Global Const $VK_ESCAPE = 0x1B
Global Const $VK_F12 = 0x7B
Global Const $VK_C = 0x43
Global Const $VK_SNAPSHOT = 0x2C

;Обязательно задавать элементам -1, чтобы небыло ложного срабатывания событий в случае если (ещё) не создан элемент присваеваемый данной переменной
Global $nChildGUI_Close_Bttn = -1

$hMain_GUI = GUICreate("Main GUI", 500, 500)

Global $defaultstatus = "Готов"
Global $status

; Assign "F12" with Message() and set extended function call
_HotKey_Assign($VK_F12, 'Message', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))

; Assign "CTRL-ESC" with Quit()
_HotKey_Assign(BitOR($CK_CONTROL, $VK_ESCAPE), 'Quit')

_HotKey_Assign(BitOR($CK_CONTROL, $VK_C), 'Qt')
_HotKey_Assign(BitOR($CK_CONTROL, $VK_SNAPSHOT), 'Qt')

GUICtrlCreateLabel ("Добро",  10, 30, 50)
GUICtrlCreateLabel ("пожаловать", 47, 30, 60)

$nChild_Button = GUICtrlCreateButton("Начать читать", 20, 400, 100, 20)
$cancelbutton = GUICtrlCreateButton ("Выход",180,130,70,20)
GUISetState(@SW_SHOW, $hMain_GUI)

;Создаём дочерний GUI, не отображая его на экране

$hChild_GUI = _ChildGUI_Create($hMain_GUI)

While 1
	;Обработка событий в расширенном режиме
	$aMsg = GUIGetMsg(1)

	Switch $aMsg[0]
		Case $GUI_EVENT_CLOSE
			;Проверяем если "событие закрытия" поступило с главного-родительского GUI
			If $aMsg[1] = $hMain_GUI Then Exit

			;Если "событие закрытия" поступило с дочернего GUI, то просто прячем его
			If $aMsg[1] = $hChild_GUI Then
				GUISetState(@SW_HIDE, $hChild_GUI)
			EndIf

		Case $nChild_Button
			;Показываем дочерний GUI при нажатий на кнопку "Child"
			GUISetState(@SW_SHOW, $hChild_GUI)
			If Not WinActive($hChild_GUI) Then WinActivate($hChild_GUI)

		Case $nChildGUI_Close_Bttn
			MsgBox(64, 'Message', 'Child GUI "Close" button pressed, closing the child...', 3)
			GUISetState(@SW_HIDE, $hChild_GUI)

		Case $cancelbutton
			Exit
	EndSwitch
WEnd

Func _ChildGUI_Create($hParent)
	Local $hChild_GUI

	$hChild_GUI = GUICreate("Child GUI", 500, 500, -1, -1, -1, -1, $hParent)

	;Создаём элементы тут
	$nChildGUI_Close_Bttn = GUICtrlCreateButton("Close", 20, 170, 60, 20)

	Return $hChild_GUI
EndFunc		;==> _ChildGUI_Create

Func Message($iKey)
    MsgBox(0, 'Hot key Test Message', 'F12 (0x' & Hex($iKey, 4) & ') has been pressed!')
EndFunc   ;==>Message

Func Qt()
	MsgBox(0, 'Ошибка', 'В доступе отказано!')
EndFunc		;==>Qt

Func Quit()
    Exit
EndFunc   ;==>Quit
 
Автор
V

VermanVendetta13

Новичок
Сообщения
147
Репутация
0
Ksaan сказал(а):
Возможно я не совсем понял что ты хотел.
Код:
#include <GUIConstants.au3>
#Include <HotKey.au3>

 ;Запрет некоторых комбинаций
Global Const $VK_ESCAPE = 0x1B
Global Const $VK_F12 = 0x7B
Global Const $VK_C = 0x43
Global Const $VK_SNAPSHOT = 0x2C

;Обязательно задавать элементам -1, чтобы небыло ложного срабатывания событий в случае если (ещё) не создан элемент присваеваемый данной переменной
Global $nChildGUI_Close_Bttn = -1

$hMain_GUI = GUICreate("Main GUI", 500, 500)

Global $defaultstatus = "Готов"
Global $status

; Assign "F12" with Message() and set extended function call
_HotKey_Assign($VK_F12, 'Message', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))

; Assign "CTRL-ESC" with Quit()
_HotKey_Assign(BitOR($CK_CONTROL, $VK_ESCAPE), 'Quit')

_HotKey_Assign(BitOR($CK_CONTROL, $VK_C), 'Qt')
_HotKey_Assign(BitOR($CK_CONTROL, $VK_SNAPSHOT), 'Qt')

GUICtrlCreateLabel ("Добро",  10, 30, 50)
GUICtrlCreateLabel ("пожаловать", 47, 30, 60)

$nChild_Button = GUICtrlCreateButton("Начать читать", 20, 400, 100, 20)
$cancelbutton = GUICtrlCreateButton ("Выход",180,130,70,20)
GUISetState(@SW_SHOW, $hMain_GUI)

;Создаём дочерний GUI, не отображая его на экране

$hChild_GUI = _ChildGUI_Create($hMain_GUI)

While 1
	;Обработка событий в расширенном режиме
	$aMsg = GUIGetMsg(1)

	Switch $aMsg[0]
		Case $GUI_EVENT_CLOSE
			;Проверяем если "событие закрытия" поступило с главного-родительского GUI
			If $aMsg[1] = $hMain_GUI Then Exit

			;Если "событие закрытия" поступило с дочернего GUI, то просто прячем его
			If $aMsg[1] = $hChild_GUI Then
				GUISetState(@SW_HIDE, $hChild_GUI)
			EndIf

		Case $nChild_Button
			;Показываем дочерний GUI при нажатий на кнопку "Child"
			GUISetState(@SW_SHOW, $hChild_GUI)
			If Not WinActive($hChild_GUI) Then WinActivate($hChild_GUI)

		Case $nChildGUI_Close_Bttn
			MsgBox(64, 'Message', 'Child GUI "Close" button pressed, closing the child...', 3)
			GUISetState(@SW_HIDE, $hChild_GUI)

		Case $cancelbutton
			Exit
	EndSwitch
WEnd

Func _ChildGUI_Create($hParent)
	Local $hChild_GUI

	$hChild_GUI = GUICreate("Child GUI", 500, 500, -1, -1, -1, -1, $hParent)

	;Создаём элементы тут
	$nChildGUI_Close_Bttn = GUICtrlCreateButton("Close", 20, 170, 60, 20)

	Return $hChild_GUI
EndFunc		;==> _ChildGUI_Create

Func Message($iKey)
    MsgBox(0, 'Hot key Test Message', 'F12 (0x' & Hex($iKey, 4) & ') has been pressed!')
EndFunc   ;==>Message

Func Qt()
	MsgBox(0, 'Ошибка', 'В доступе отказано!')
EndFunc		;==>Qt

Func Quit()
    Exit
EndFunc   ;==>Quit

Ты просто гений!!! Спасибо!!
 
Верх