#maxscript
Вопрос:
Я хотел нажать сфокусированную кнопку в Maxscript, используя стандартные кнопки, если это возможно. Я думаю, что это было бы легко сделать с помощью кнопки .NET, но мне было просто любопытно, можно ли нажать кнопку фокусировки с помощью стандартного элемента управления кнопкой MAXScript.
Вот код, который у меня есть, который фокусирует кнопку, но обработчик событий кнопки работает, даже если кнопка сфокусирована. Я предполагаю, что это потому, что это событие только для щелчка мыши.
try destroyDialog testRol catch()
rollout testRol "testRol" (
button btn_yes "Y̲es" width:120 across:2
button btn_no "N̲o" width:120
on btn_yes pressed do destroyDialog testRol
on btn_no pressed do print "Oh no.."
on testRol open do setFocus btn_yes
)
createDialog testRol 525 45
OK
Ответ №1:
Если вы хотите нажать кнопку mxs, используйте ее ручку:
on testRol open do UIAccessor.PressButton btn_yes.hWnd[1]
Если вы хотите нажать кнопку фокусировки, возьмите ее ручку и используйте ее таким же образом:
on testRol open do
(
local user32 = (python.import "ctypes").windll.user32
setFocus btn_yes
UIAccessor.PressButton (user32.GetFocus())
)
Комментарии:
1. Извините, что я не был достаточно ясен в своем вопросе. Я имел в виду, что, когда я открыл это диалоговое окно и кнопка была сфокусирована, нажатие клавиши ввода не привело к нажатию кнопки, как вы ожидали. Я отмечу это как ответ, видя, как вы это сделали. Спасибо.