Что нового

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

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

Maxwal

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

Yashied

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

Maxwal

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

Yashied

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

madmasles

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

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

Yashied

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

CreatoR

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

den-x

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