Что нового

[Элементы GUI] Создание кнопки

Статус
Закрыто для дальнейших ответов.

Maxwal

Чайник
Сообщения
14
Репутация
0
Вопрос короткий:
Как создать свою кнопку в чужом окне?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
Непосредственно в чужом окне никак. Но можно создать свой GUI с одной лишь кнопкой и перемещать его синхронно с тем самым чужым окном, a.k.a. его кнопка.
 
Автор
M

Maxwal

Чайник
Сообщения
14
Репутация
0
А как тогда перемещать синхронно? И не будет ли это мазолить глаза, тем что кнопка будет отставать от движущегося окна?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
Будет.

:smile:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Yashied [?]
Но можно создать свой GUI с одной лишь кнопкой и перемещать его синхронно с тем самым чужым окном, a.k.a. его кнопка.
Приведите, пожалуйста, пример скрипта, как это сделать.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 702
Код:
#Include <WindowsConstants.au3>

Global $X, $Y

Run('Calc.exe')
If Not WinWait('Calculator', '', 3) Then
	MsgBox(0, '', 'Calculator not found!')
	Exit
EndIf

$hWnd = WinGetHandle('Calculator')
$hForm = GUICreate('', 50, 19, -1, -1, $WS_POPUP, -1, $hWnd)
$Button = GUICtrlCreateButton('OK', 0, 0, 50, 19)
GUISetState(@SW_SHOWNOACTIVATE)

While 1
	$Pos = WinGetPos($hWnd)
	If @error Then
		Exit
	EndIf
	If ($X <> $Pos[0]) Or ($Y <> $Pos[1]) Then
		$X = $Pos[0]
		$Y = $Pos[1]
		WinMove($hForm, '', $X + 201, $Y + 29)
	EndIf
	$Msg = GUIGetMsg()
	Switch $Msg
		Case $Button
			MsgBox(0, '', 'OK')
	EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 319
Yashied
Спасибо.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 160
Репутация
2 329
Нечто похожее уже было: http://autoit-script.ru/index.php/topic,348.0.html
 

den-x

Чайник
Сообщения
46
Репутация
0
Yashied,Я попробовал твой код но по клацу по кнопке она улетает за пределы экрана :scratch:
 
Статус
Закрыто для дальнейших ответов.
Верх