メッセージボックスを表示
Declare Function MessageBox Lib "user32.dll" _
Alias "MessageBoxA" _
(ByVal hWnd As Long, ByVal lpText As String, _
ByVal lpCaption As String, ByVal uType As Long) As Long
Declare Function MessageBox Lib "user32.dll" _
Alias "MessageBoxA" _
(ByVal hWnd As Integer, ByVal lpText As String, _
ByVal lpCaption As String, ByVal uType As Integer) As Integer
int MessageBox(
HWND hWnd,
LPCTSTR lpText,
LPCTSTR lpCaption,
UINT uType
);
引数
hWnd
メッセージボックスの親ウィンドウlpText
メッセージの文字列lpCaption
キャプションタイトルuType
メッセージボックスを指定する定数の組み合わせ戻り値
正常終了のとき 押されたボタンの定数uTypeの定数
エラーのとき 0
サンプル
<ボタンの指定>
MB_ABORTRETRYINGNORE = &H2 [中止][再試行][無視]の三つのボタン
MB_OK = &H0 [了解]のボタン
MB_CANCEL = &H1 [了解]と[取消]のボタン
MB_RETRYCANCEL = &H5 [再試行]と[取消]のボタン
MB_YESNO = &H4 [はい]と[いいえ]のボタン
MB_YESNOCANCEL = &H3 [はい][いいえ][取消]のボタン
<アイコンの指定>
MB_ICONEXCLAMATION = &H30 [!]アイコン
MB_ICONINFOMATION = &H40 [i]アイコン
MB_ICONQUESTION = &H20 [?]アイコン
MB_ICONHAND = &H10 [ストップ]アイコン
<デフォルトボタンの指定>
MB_DEFBUTTON1 = &H0 最初のボタンがデフォルト
MB_DEFBUTTON2 = &H100 二番目のボタンがデフォルト
MB_DEFBUTTON3 = &H200 三番目のボタンがデフォルト
MB_DEFBUTTON4 = &H300 四番目のボタンがデフォルト
<モードの指定>
MB_APPLIMODAL = &H0 メッセージボックスの親ウィンドウ
以外のウィンドウの操作は可能
MB_SYSTEMMODAL = &H1000 システムモーダルな状態
MB_TASKMODAL = &H2000 タスクモーダル
<その他のオプションの指定>
MB_DEFAULT_DESKTOP_ONLY = &H20000
入力フォーカスを持つデスクトップが
デフォルトのデスクトップでない場合は
メッセージボックスを作成しない
MB_HELP = &H4000 ヘルプボタンを追加
MB_RIGHT = &H80000 テキストを右詰にする
MB_RTLREADING = &H100000 テキストを右から表示する
MB_SETFORGROUND = &H10000 メッセージボックスをフォアグラウンドを持つ
ウィンドウにする
MB_TOPMOST = &H40000 常に手前に表示
戻り値の定数
IDABORT = 3 [中止]ボタンが押された
IDCANCEL = 2 [取消]ボタンが押された
IDIGNORE = 5 [無視]ボタンが押された
IDNO = 7 [いいえ]ボタンが押された
IDOK = 1 [OK]ボタンが押された
IDRETRY = 4 [再試行]ボタンが押された
IDYES = 6 [はい]ボタンがおされた
ダウンロード(MessageBox.lzh 3.50KB)Private Sub Command1_Click()
Dim uType As Long, t(5) As Long
Dim rc As Long
Dim Caption As String, message As String
With Me
'各チェックボックスの値を調べる
'ボタン
For a = 0 To 5
If .Option1(a).Value = True Then
Select Case a
Case 0: t(1) = MB_ABORTRETRYINGNORE
Case 1: t(1) = MB_OK
Case 2: t(1) = MB_CANCEL
Case 3: t(1) = MB_RETRYCANCEL
Case 4: t(1) = MB_YESNO
Case 5: t(1) = MB_YESNOCANCEL
End Select
Exit For
End If
Next
'アイコン
For a = 0 To 3
If .Option2(a).Value = True Then
Select Case a
Case 0: t(2) = MB_ICONEXCLAMATION
Case 1: t(2) = MB_ICONINFOMATION
Case 2: t(2) = MB_ICONQUESTION
Case 3: t(2) = MB_ICONHAND
End Select
Exit For
End If
Next
'デフォルトボタン
For a = 0 To 3
If .Option3(a).Value = True Then
Select Case a
Case 0: t(3) = MB_DEFBUTTON1
Case 1: t(3) = MB_DEFBUTTON2
Case 2: t(3) = MB_DEFBUTTON3
Case 3: t(3) = MB_DEFBUTTON4
End Select
Exit For
End If
Next
'モード
For a = 0 To 2
If .Option4(a).Value = True Then
Select Case a
Case 0: t(4) = MB_APPMODAL
Case 1: t(4) = MB_SYSTEMMODAL
Case 2: t(4) = MB_TASKMODAL
End Select
Exit For
End If
Next
'オプション
For a = 0 To 5
If .Option5(a).Value = True Then
Select Case a
Case 0: t(5) = MB_DEFAULT_DESKTOP_ONLY
Case 1: t(5) = MB_HELP
Case 2: t(5) = MB_RIGHT
Case 3: t(5) = MB_RTLREADING
Case 4: t(5) = MB_SETFORGROUND
Case 5: t(5) = MB_TOPMOST
Case 6: t(5) = &H0
End Select
Exit For
End If
Next
For a = 1 To 5
uType = uType Or t(a)
Next
Debug.Print Hex(uType)
Caption = .Text1.Text
message = .Text2.Text
'関数の実行
rc = MessageBox(Me.hWnd, message, Caption, uType)
End With
End Sub