Что нового

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

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

Maxwal

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

Yashied

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

Maxwal

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

Yashied

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

madmasles

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

Приведите, пожалуйста, пример скрипта, как это сделать.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
#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,322
Yashied
Спасибо.
 

CreatoR

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

den-x

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