The user interacts with 3ds Max and plug-ins mainly using the command panel roll-ups and dialogs, the mouse (or tablet), the keyboard, and the 3D viewport. The 3ds Max SDK provides developers with the ability to control each of these methods of user interaction.
Plug-ins generally provide their user interface controls in one of these ways:
Many of the buttons, spinners, edit fields, etc. that appear in these dialogs and roll-ups are from the set of the 3ds Max's custom controls. Use of them makes the UI of plug-ins consistent in appearance. For more information on these controls and how to work with them see the topic on Custom User Interface Controls.
As of 3ds Max 2017, plug-in UIs can also be created using Qt. For more information see Qt.
In addition to the custom controls, the mouse is used for interaction. The way this type of interaction is handled in the SDK is through what are called Command Modes. For more information see the topic on Command Modes and Mouse Procedures.
Plug-ins can also use the keyboard to facilitate user interaction. This is done by interacting with the action system, handled principally by the ActionTable class.
Finally, plug-ins often need to draw in the 3D viewports to show themselves or their 'gizmos'. This is accomplished using the methods provided by the interactive renderer GraphicsWindow.