メッセージボックスの作成(T)          <TOP>


APIでメッセージボックスを作成します。ボタン種・アイコンをチェックして作成ボタンをクリックします。

MessageBox メッセージボックスの作成

 

 

Windows2000・WindowsXP(Windows9x、WindowsMeでは対応していません!エラー処理をしていないのでCtrl+Alt+Delで停止してください)

 

'================================================================
'= メッセージボックスの作成
'=    (MessageBox.bas)
'================================================================
#include "Windows.bi"

' メッセージボックスの作成、表示、操作を行う
Declare Function Api_MessageBox& Lib "user32" Alias "MessageBoxA" (ByVal hWnd&, ByVal lpText$, ByVal lpCaption$, ByVal wType&)

' 第3引数
#define MB_OK &H0                 '[OK]
#define MB_OKCANCEL &H1           '[OK][キャンセル]
#define MB_ABORTRETRYIGNORE &H2   '[中止][再試行][無視]
#define MB_YESNOCANCEL &H3        '[はい][いいえ][キャンセル]
#define MB_YESNO &H4              '[はい][いいえ]
#define MB_RETRYCANCEL &H5        '[再試行][キャンセル]
#define MB_CANCELTRYCONTINUE &H6  '[キャンセル][再実行][続行] ※Windows2000、WindowsXP

#define MB_ICONSTOP &H10          '停止アイコン
#define MB_ICONQUESTION &H20      '疑問符アイコン
#define MB_ICONEXCLAMATION &H30   '感嘆符アイコン
#define MB_ICONINFORMATION &H40   '吹き出しに「i」のアイコン

#define MB_SYSTEMMODAL &H1000     'メッセージボックスがWS_EX_TOPMOSTスタイルを持つ以外は、MB_APPLMODALと同じ

Var Shared Group(1) As Object
Var Shared Radio(10) As Object
Var Shared button1 As Object

For i = 0 To 10
    If i < 2 Then
        Group(i).Attach GetDlgItem("Group" & Trim$(Str$(i + 1))) : Group(i).SetFontSize 14
    End If
    Radio(i).Attach GetDlgItem("Radio" & Trim$(Str$(i + 1))) : Radio(i).SetFontSize 14
Next
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'= 
'================================================================
Declare Function ButtonNo bdecl () As Long
Function ButtonNo()
    ButtonNo = Val(Mid$(GetDlgRadioSelect("Radio1"), 6)) - 1
End Function

'================================================================
'= 
'================================================================
Declare Function IconNo bdecl () As Long
Function IconNo()
    IconNo = ((Val(Mid$(GetDlgRadioSelect("Radio8"), 6)) - 8) + 1) * 16
End Function

'================================================================
'= 
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var hWnd As Long
    Var wStyle As Long
    Var Text As String
    Var Caption As String
    Var Ret As Long

    hWnd = GethWnd
    Text = "このメッセージボックスは、" & Chr$(13,10) & Chr$(13,10) & "API関数「MessageBox」で作成しました。"
    Caption = "サンプルプログラム"
    wStyle = ButtonNo Or IconNo Or MB_SYSTEMMODAL

    Ret = Api_MessageBox(hWnd, Text, Caption, wStyle)
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End