Нажмите кнопку фокусировки в Maxscript

#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. Извините, что я не был достаточно ясен в своем вопросе. Я имел в виду, что, когда я открыл это диалоговое окно и кнопка была сфокусирована, нажатие клавиши ввода не привело к нажатию кнопки, как вы ожидали. Я отмечу это как ответ, видя, как вы это сделали. Спасибо.