我正在为3ds MAX 2013编写插件。在我的插件中,我需要用户在“网格/相机/灯光”的“对象属性”窗口中添加一些“用户定义”属性。输入值后,我需要验证数据中的一些条件,如果有一些错误,我需要显示一个消息框并取消关闭“对象属性”窗口。
使用NOTIFY_PRE_NODE_USER_PROP_CHANGED and NOTIFY_POST_NODE_USER_PROP_CHANGED我能够验证条件并显示错误消息。如何在显示错误消息后停止关闭窗口?
在3ds MAX 2013的maxsdk中,在TabDialogMessages枚举中,我找到了一个标志“TABDLG_PRECOMMIT”,它似乎可以满足我的需要。但是如何在“对象属性”窗口中使用此标志。如果我可以使用这个,我将如何在“对象属性”窗口的“用户定义”选项卡中获取编辑框的句柄。
答案 0 :(得分:0)
不幸的是,我认为这是不可能的。您尝试执行的操作的主要问题是在显示属性对话框后实际获取IP。在发布之前没有办法(AFAIK)影响对话框,并且无法获得指令指针。如果你能解决这个问题,你可以对DlgProc进行SubClass并拦截OkToCommit调用以进行验证。
您可以做的是验证属性,如果它们不合适,请立即使用' actionMan.executeAction 0“40022”重新发布对话框 - 编辑:属性'。用户将看到对话框消失,并立即重新出现。它并不完美,但它确实存在。