Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Структурой создана зависимость работы одного диалога от состояния другого

Поиск

struct MyStructure|
(
       chB_state = true, ChBoxState_Dialog, Btn_Dialog,
       fn ChBoxState_fn =
       (
                   try(destroydialog ChBoxState_rol)catch()
                   rollout ChBoxState_rol " Properties"
                   (
                               checkbox cbox1 "try me" width:200 checked:chB_state
                               on cbox1 changed state do (cbox1.checked = ui.chB_state = state)
                  )
                   ChBoxState_rol
      )
 
       fn Btn_fn=
       (
                   try(destroydialog Btn_rol)catch()
                   rollout Btn_rol ""
                   (
                               button btn1 "test"
                               on btn1 pressed do (print ui.chB_state)
                  )
                   Btn_rol
      ),
       fn rollcreator_fn=
                   (
                   Btn_Dialog = Btn_fn()
                   Createdialog Btn_Dialog
                   ChBoxState_Dialog = ChBoxState_fn()
                   Createdialog ChBoxState_Dialog
                  ),
       fn dummy_fn = dummy()
)
global ui = MyStructure()
ui.rollcreator_fn()
ui.dummy_fn()

 

Источник: http://www.scriptspot.com/forums/3ds-max/general-scripting/struct-initialize-inside-a-variable

 

_______________________________________________________________

Value > MAXWrapper > Node

getPointPos $ <index vert> -- возвращает point3 позиции вертекса

isPointSelected $ <index vert> -- если вертекс выделен, то true else false

$.numfaces -- количество полигонов

$.numverts -- количество вершин

$.edges -- количество рёбер

getVertSelection $.mesh -- возвращает битовый массив выделенных вершин объекта класса geometry

$.selectedVerts.count -- количество выделенных вершин

getEdgeSelection $.mesh -- выделенных рёбер-- Источник из MaxscriptHelp

polyop.getFaceDeg $ <int Face> -- количество вершин полигона

Выделить объекты группы. Доступ к объектам группы осуществляется путём обращения к свойству.children контейнера группы.

_______________________________________________________________

Viewport Redraw Callback Mechanism

-- Этот коллбэк-механизм действует при событии обновления въюпорта

(
fn orderEdgeSel_fn =(Iterat=1) -- функция, в которой переменная Iterat приравнивается 1
unregisterredrawviewscallback    orderEdgeSel_fn -- Коллбэк удаляется
registerredrawviewscallback        orderEdgeSel_fn -- Коллбэк регистрируется
)

_______________________________________________________________

Node Event событий System Коллбэк событий объекта

События с объектами класса Node
fn orderTest_fn ev nd= (Iterat=1) -- функция, в которой переменная Iterat приравнивается 1. В данном случае функция должна получать 2 параметра (ev и nd)
callbackItem = NodeEventCallback mouseUp: true callbackBegin:orderTest_fn
-- при отпускании мыши, колбэком выполняется функция orderEdgeSel_fn
В хэлпе так же перечислено ещё много событий, которые могут быть перечислены одновременно.

 

_______________________________________________________________

Сообщения windows.sendMessage, UIAccessor.sendMessage

Разбираемся. Пример. Ссылки

 

rollout accessTest "TestDialog"
(
       button one "press"
       checkbutton two "Check"
 
       on one pressed do print "One pressed!"
       on two changed state do
                   (
                   if state == true then
                   (print "check on")
                   else print "check off"
                  )
 
)
createDialog accessTest
-------------------------------------------------------------
-- Нажимаем
RollOutHandle = (windows.getChildHWND 0 "TestDialog")[1]
checkHandle =(windows.getChildHWND RollOutHandle "Check")[1]
VK_RETURN=0x000D -- Сообщение 13 (Enter)

 

-- Коды символов и клавиш http://jquery.page2page.ru/index.php5/Коды_символов_и_клавиш

WM_SETFOCUS=0x0007 -- wm_SetFocus Уведомляет окно о том, что оно получило фокус ввода. http://platonov-andrei.narod.ru/Delphi/WM_HELP/wm_SetFocus.htm

--http://www.opengl.org.ru/books/opengl4_22.html

WM_KEYDOWN=0x0100

--http://www.firststeps.ru/mfc/winapi/keyb/r.php?59

--https://msdn.microsoft.com/en-us/library/windows/desktop/ms646280(v=vs.85).aspx

--http://security-corp.org/programming/25399-chto-imenno-proishodit-kogda-polzovatel-nabiraet-v-adresnoy-stroke-googlecom-chast-1.html

WM_CHAR=0x0102 --Обрабатывалось нажатие клавиши http://www.info.oglib.ru/bgl/5000/137.html

-- Сообщение WM_CHAR содержит код символа клавиши, которая была нажата. http://www.vsokovikov.narod.ru/New_MSDN_API/Keyb_input/notify_wm_char.htm

--Коды виртуальных клавиш http://vsokovikov.narod.ru/New_MSDN_API/Other/virtual_key_code.htm

--код 0D работает и записывается как 0x0D

UIAccessor.sendMessage checkHandle WM_SETFOCUS 0 0
windows.sendMessage checkHandle WM_CHAR VK_RETURN 0

--или
--SendMessage(hWnd, WM_KEYDOWN, VK_RETURN, lParam)

windows.sendMessage checkHandle WM_KEYDOWN VK_RETURN 0

 

--Источник: http://www.scriptspot.com/forums/3ds-max/general-scripting/can-anyone-help-with-checking-a-checkbutton-via-uiaccessor

--http://forums.cgsociety.org/archive/index.php?t-1073040.html

 

http://www.tdoc.ru/c/programming/win32/windows-messages-book.html

http://ideafix.name/wp-content/uploads/stuff/book44.pdf

_______________________________________________________________



Поделиться:


Последнее изменение этой страницы: 2021-04-13; просмотров: 76; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.37.200 (0.006 с.)