;; MsgBox.lsp (c) 2001-2003, John F. Uhden, Cadlantic/CADvantage ;; A cute little utility to invoke a VBA message box and return a ;; value to AutoLisp. ;; Requires AutoCAD 2000 (R15) or higher. ;; The buttons are a Boolean value representing a logical sum of ;; the following values: ;;-------------------------------------------------------- ;; MsgBox(prompt[, buttons][, title][, helpfile, context]) ;; Buttons: ;; vbOKOnly 0 Display OK button only. ;; vbOKCancel 1 Display OK and Cancel buttons. ;; vbAbortRetryIgnore 2 Display Abort, Retry, and Ignore buttons. ;; vbYesNoCancel 3 Display Yes, No, and Cancel buttons. ;; vbYesNo 4 Display Yes and No buttons. ;; vbRetryCancel 5 Display Retry and Cancel buttons. ;; vbCritical 16 Display Critical Message icon. ;; vbQuestion 32 Display Warning Query icon. ;; vbExclamation 48 Display Warning Message icon. ;; vbInformation 64 Display Information Message icon. ;; vbDefaultButton1 0 First button is default. ;; vbDefaultButton2 256 Second button is default. ;; vbDefaultButton3 512 Third button is default. ;; vbDefaultButton4 768 Fourth button is default. ;; vbApplicationModal 0 Application modal; the user must respond to the message box before continuing work in the current application. ;; vbSystemModal 4096 System modal; all applications are suspended until the user responds to the message box. ;; Revised (01-27-03) thanks to Ed Jobe's contribution about snagging the return value. (defun MsgBox (Title Buttons Message / useri1 value) (vl-load-com) (or *acad* (setq *acad* (vlax-get-acad-object))) (setq useri1 (getvar "useri1")) (acad-push-dbmod) (vla-eval *acad* (strcat "ThisDrawing.SetVariable \"USERI1\"," "MsgBox (\"" Message "\"," (itoa Buttons) ",\"" Title "\")" ) ) (setq value (getvar "useri1")) (setvar "useri1" useri1) (acad-pop-dbmod) value )