Dialogs can be either modal or modeless . In a modeless dialog, the user can interact with other parts of the application before returning to the dialog. Menu components are limited to buttons , labels , and separators . Dialogs can contain other, sometimes arbitrary, kinds of widgets, such as List and Text . Dialogs permit more complex interaction with the user and allow the application to solicit a broader range of information.
Menus are well suited to allowing the user to make a single choice from a constrained set.
Dialogs are appropriate for displaying information about a transient or unusual state of the program and for obtaining complex input from the user. Whether to use a dialog or a menu is not always clear. In fact, a TearOffMenu combines aspects of both.