Функция MessageBoxIndirect

Declare Function MessageBoxIndirect Lib "user32.dll" Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS) As Long

MessageBoxIndirect создает, отображает и управляет окном сообщения на экране. Окно сообщения содержит определенные приложением сообщение и заголовок, а также любые комбинации предопределенных иконок и управляющих кнопок. Данная функция имеет расширенные возможности по сравнению с MessageBox и MessageBoxEx

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает один из следующих флажков, определяющих нажатую кнопку:

IDABORT = 3
Нажата кнопка Стоп (Abort)
IDCANCEL = 2
Нажата кнопка Отмена (Cancel) (или пользователь закрыл окно клавишей Esc)
IDCONTINUE = 11
Windows 2000:Нажата кнопка Продолжить (Continue)
IDIGNORE=5
Нажата кнопка Пропустить (Ignore)
IDNO=7
Нажата кнопка Нет (No)
IDOK=1
Нажата кнопка OK
IDRETRY=4
Нажата кнопка Повтор (Retry)
IDTRYAGAIN=10
Windows 2000: Нажата кнопка Повторить снова (Try Again)
IDYES=6
Нажата кнопка Да (Yes)

Параметры

lpMsgBoxParams
Структура MSGBOXPARAMS, содержащая информацию о создаваемом сообщении

Пример

Dim MBP As MSGBOXPARAMS
Dim LDs As Long, Cnt As Long, sDrives As String
' Получим список доступных дисков
LDs = GetLogicalDrives
sDrives = "Доступные диски:"
For Cnt = 0 To 25
   If (LDs And 2 ^ Cnt) <> 0 Then
        sDrives = sDrives + " " + Chr$(65 + Cnt)
   End If
Next Cnt
    
' Устанавливаем размер структуры
MBP.cbSize = Len(MBP)
' Устанавливаем стиль значка
MBP.dwStyle = MB_ICONASTERISK
MBP.hwndOwner = Me.hwnd
MBP.lpszText = sDrives
MBP.lpszCaption = "Русский_Проект"
' Выводим сообщение
MessageBoxIndirect MBP

Смотри также

MessageBox, MessageBoxEx

Категория

Диалоговые окна