Windows API(user32.dll)を用いたMessagebox
< 戻る
Win32 API(user32.dll) の Messagebox を用いたメッセージボックスです。
・ボタン、アイコンなどのフラグ
・戻り値
・アイコン画像
は MicrosoftのM公式サイトを参照ください。
フラグを組み合わせる時は OR で繋ぎます。
------------------------------ [ Sample Code ] ------------------------------
Declare Function MessageBox Lib "user32.dll"(ByVal hWnd As Long, ByVal msgC As String, ByVal msgT As String, ByVal uType As Long) As integer
'ボタンフラグ
'Public Const MB_OK = &H0 '((DWORD)0x00000000L)
'Public Const MB_OKCANCEL = &H1 '((DWORD)0x00000001L)
Public Const MB_ABORTRETRYIGNORE = &H2 '((DWORD)0x00000002L)
'アイコン
Public Const MB_ICONWARNING = &H30 '((DWORD)0x00000030L)
'最前面フラグ
Public Const MB_TOPMOST = &H40000
Sub oDeclare()
Dim oRET As Integer
Dim oMsgTxt as String, oTitle as String
Dim oType as Long
oMsgTxt = "user32.dll によるMessage Boxです"
oTitle = "Win API"
oType = MB_ABORTRETRYIGNORE OR MB_TOPMOST OR MB_ICONWARNING
'API MSGBOX TEST
oRET = TopMostMsgBox(oMsgTxt, oTitle,oType)
MsgBox(oRET,0,"LO7.5.7.1")
End Sub
Function TopMostMsgBox(msgC As String, msgT As String, fType As Long) as Integer
Dim oRtn As Integer
oRtn = MessageBox(0, msgC, msgT, fType)
TopMostMsgBox = oRtn
End Function
Win32 API(user32.dll) の マルチバイト文字を受ける
MessageBoxA関数を用いたメッセージボックスです。
・ボタン、アイコンなどのフラグ
・戻り値
・アイコン画像
は Microsoftの公式サイトを参照ください。
フラグを組み合わせる時は OR で繋ぎます。
参考:ゼロからはじめるWindows API - MessageBoxA 関数と MessageBoxW 関数編
------------------------------ [ Sample Code ] ------------------------------
Declare Function MessageBoxA Lib "user32.dll"(ByVal hWnd As Long, ByVal msgC As String, ByVal msgT As String, ByVal uType As Long) As integer
'ボタンフラグ
'Public Const MB_OK = &H0 '((DWORD)0x00000000L)
Public Const MB_OKCANCEL = &H1 '((DWORD)0x00000001L)
'Public Const MB_ABORTRETRYIGNORE = &H2 '((DWORD)0x00000002L)
'アイコン
Public Const MB_ICONINFORMATION = &H40 '((DWORD)0x00000040L)
'最前面フラグ
Public Const MB_TOPMOST = &H40000
Sub oDeclare()
Dim oRET As Integer
Dim oMsgTxt as String, oTitle as String
Dim oType as Long
oMsgTxt = "user32.dll によるMessage Boxです"
oTitle = "Win API"
oType = MB_OKCANCEL OR MB_TOPMOST OR MB_ICONINFORMATION
'API MSGBOX TEST
oRET = TopMostMsgBox(oMsgTxt, oTitle,oType)
MsgBox(oRET,0,"LO7.5.7.1")
End Sub
Function TopMostMsgBox(msgC As String, msgT As String, fType As Long) as Integer
Dim oRtn As Integer
oRtn = MessageBoxA(0, msgC, msgT, fType)
TopMostMsgBox = oRtn
End Function
Win32 API(user32.dll) の ワイド文字を受ける
MessageBoxW() 関数を用いたメッセージボックスです。
内部では 入力値の文字コードは ANSI、出力値の文字コードは
Unicodeなので、文字化けしていることがわかります。
LibreOffice Basicでは 文字コードの変換の関数は
容易ではないので、unicode文字を取り扱う時に使うと
良いでしょう。(※)
※ PythonマクロやJavaScriptマクロでは変換可能です。
・ボタン、アイコンなどのフラグ
・戻り値
・アイコン画像
は Microsoftの公式サイトを参照ください。
フラグを組み合わせる時は OR で繋ぎます。
参考:ゼロからはじめるWindows API - MessageBoxA 関数と MessageBoxW 関数編
------------------------------ [ Sample Code ] ------------------------------
Declare Function MessageBoxW Lib "user32.dll"(ByVal hWnd As Long, ByVal msgC As String, ByVal msgT As String, ByVal uType As Long) As integer
'ボタンフラグ
Public Const MB_YESNOCANCEL = &H3 '((DWORD)0x00000003L)
'アイコン
Public Const MB_ICONQUESTION = &H20 '((DWORD)0x00000020L)
'最前面フラグ
Public Const MB_TOPMOST = &H40000
Sub oDeclare()
Dim oRET As Integer
Dim oMsgTxt as String, oTitle as String
Dim oType as Long
oMsgTxt = "user32.dll によるMessage Boxです"
oTitle = "Win API"
oType = MB_YESNOCANCEL OR MB_TOPMOST OR MB_ICONQUESTION
'API MSGBOX TEST
oRET = TopMostMsgBox(oMsgTxt, oTitle,oType)
MsgBox(oRET,0,"LO7.5.7.1")
End Sub
Function TopMostMsgBox(msgC As String, msgT As String, fType As Long) as Integer
Dim oRtn As Integer
oRtn = MessageBoxW(0, msgC, msgT, fType)
TopMostMsgBox = oRtn
End Function