Страница 1 из 1
Модальность диалоговых окон в Word
Добавлено: 03 окт 2009, 13:26
Busine2009
Что нужно написать в коде, чтобы диалоговые окна становились или модальными или не модальными.
Например, я запустил макрос, содержащий MsgBox. Пока я не нажму на кнопку в выскочившем диалоговом окне, то ничего не смогу делать в документе. Как сделать так, чтобы Диалоговое окно висело, но что бы я мог, например, текст вводить, или перемещаться по документу.
Re: Модальность диалоговых окон в Word
Добавлено: 03 окт 2009, 13:35
EducatedFool
Надо использовать не встроенный
MsgBox, а
создать форму, которая внешне выглядит как MsgBox.
Или использовать API-функцию
MessageBox, которая может отображать немодальное сообщение:
Код: Выделить всё
Private Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" ( _
ByVal hwnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As Long) As Long
Re: Модальность диалоговых окон в Word
Добавлено: 03 окт 2009, 13:59
Busine2009
EducatedFool
то есть к встроенным диалоговым окнам, например, vbOKCancel, нельзя применить модальность?
Я, например, не создаю своих диалоговых окон, т.к. мне кажется, что из-за этого макросы будут медленнее выполняться. На самом ли деле макросы будут медленнее выполняться, если использовать свои диалоговые окна, а не встроенные?
Re: Модальность диалоговых окон в Word
Добавлено: 03 окт 2009, 14:22
EducatedFool
то есть к встроенным диалоговым окнам, например, vbOKCancel, нельзя применить модальность?
Нет, нельзя.
Читаем справку по
MsgBox:
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.
Как видишь,
немодального режима здесь нет (есть только 2 вида модальных).
На самом ли деле макросы будут медленнее выполняться, если использовать свои диалоговые окна, а не встроенные?
Не скорость макросов это почти не влияет.
По крайней мере, ты не заметишь разницы в скорости.