Codice del modulo:
codice:
Option Explicit
Public Declare Function MessageBoxIndirect Lib "user32" Alias "MessageBoxIndirectA" (lpMsgBoxParams As MSGBOXPARAMS) As Long
Public Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
Public Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long
Public Type MSGBOXPARAMS
cbSize As Long
hwndOwner As Long
hInstance As Long
lpszText As String
lpszCaption As String
dwStyle As Long
lpszIcon As String
dwContextHelpId As Long
lpfnMsgBoxCallback As Long
dwLanguageId As Long
End Type
Public Const MB_USERICON = &H80&
Public Const MB_ABORTRETRYIGNORE = &H2&
Public Const MB_APPLMODAL = &H0&
Public Const MB_COMPOSITE = &H2&
Public Const MB_DEFAULT_DESKTOP_ONLY = &H20000
Public Const MB_DEFBUTTON1 = &H0&
Public Const MB_DEFBUTTON2 = &H100&
Public Const MB_DEFBUTTON3 = &H200&
Public Const MB_DEFMASK = &HF00&
Public Const MB_ICONASTERISK = &H40&
Public Const MB_ICONEXCLAMATION = &H30&
Public Const MB_ICONHAND = &H10&
Public Const MB_ICONINFORMATION = MB_ICONASTERISK
Public Const MB_ICONQUESTION = &H20&
Public Const MB_ICONSTOP = MB_ICONHAND
Public Const MB_MISCMASK = &HC000&
Public Const MB_MODEMASK = &H3000&
Public Const MB_NOFOCUS = &H8000&
Public Const MB_OK = &H0&
Public Const MB_OKCANCEL = &H1&
Public Const MB_PRECOMPOSED = &H1&
Public Const MB_RETRYCANCEL = &H5&
Public Const MB_SETFOREGROUND = &H10000
Public Const MB_SYSTEMMODAL = &H1000&
Public Const MB_TASKMODAL = &H2000&
Public Const MB_TYPEMASK = &HF&
Public Const MB_USEGLYPHCHARS = &H4&
Public Const MB_YESNO = &H4&
Public Const MB_YESNOCANCEL = &H3&
Public Const IDABORT = 3
Public Const IDCANCEL = 2
Public Const IDCONTINUE = 5
Public Const IDIGNORE = 5
Public Const IDNO = 7
Public Const IDOK = 1
Public Const IDRETRY = 4
Public Const IDTRYAGAIN = 4
Public Const IDYES = 6
Codice Form:
codice:
Private Sub Command1_Click()
Dim MsgBox_params As MSGBOXPARAMS
Dim MsgBox_result As Long
Dim Icon_Handle As Long
Icon_Handle = ExtractIcon(App.hInstance, "NOME_FILE_ICONA.ico" & Chr(0), 0)
With MsgBox_params
.cbSize = Len(MsgBox_params)
.hwndOwner = Form1.hWnd
.hInstance = App.hInstance
.lpszText = "Si vede l'icona estratta ???" & Chr(0)
.lpszCaption = "PROVA" & Chr(0)
.dwStyle = MB_YESNO Or MB_USERICON
.lpszIcon = Icon_Handle
.dwContextHelpId = 0
.dwLanguageId = 0
End With
MsgBox_result = MessageBoxIndirect(MsgBox_params)
DestroyIcon ByVal Icon_Handle
End Sub