【问题标题】:max sdk 3ds MAX 2013最大 SDK 3ds MAX 2013
【发布时间】:2013-09-07 09:54:24
【问题描述】:

我正在为 3ds MAX 2013 编写插件。在我的插件中,我需要用户在“网格/相机/灯光”的“对象属性”窗口中添加一些“用户定义”属性。输入值后我需要验证数据中的一些条件,如果有一些错误我需要显示一个消息框并取消关闭“对象属性”窗口。

使用NOTIFY_PRE_NODE_USER_PROP_CHANGED and NOTIFY_POST_NODE_USER_PROP_CHANGED 我能够验证条件并显示错误消息。显示错误消息后如何停止关闭窗口?

在 3ds MAX 2013 的 maxsdk 中,在 TabDialogMessages 枚举中,我找到了一个标志“TABDLG_PRECOMMIT”,它似乎可以满足我的需要。但是我如何将这个标志用于“对象属性”窗口。如果我可以使用它,我将如何在“对象属性”窗口的“用户定义”选项卡中获取编辑框的句柄。

【问题讨论】:

    标签: 3dsmax


    【解决方案1】:

    不幸的是,我认为这是不可能的。您尝试做的主要问题实际上是在显示属性对话框后获取 IP。在发布之前无法(AFAIK)影响对话框,也无法在之后获取指令指针。如果您能弄清楚,您可以对 DlgProc 进行子类化并拦截 OkToCommit 调用以进行验证。

    您可以做的是验证属性,如果它们不合适,立即使用 'actionMan.executeAction 0 "40022" 重新发布对话框 - 编辑: 属性'。用户会看到对话框消失,然后立即重新出现。它并不完美,但它是一些东西。

    【讨论】:

    • 感谢您的建议。由于窗口的重新出现是不可接受的,我想出了另一种与我最初的要求不同的解决方案。我验证了消息,并在显示错误消息框后,自动更正了错误。然后我会让消息框愉快地关闭。感谢您的解释和可能的解决方法。
    猜你喜欢
    • 2014-07-12
    • 2014-09-07
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-13
    • 2019-05-14
    • 1970-01-01
    • 2017-02-16
    相关资源
    最近更新 更多