Userform MsgBox-Icon einfügen
13.10.2010 21:58:45
Nepumuk
Hallo Tino,
sind 60 Zeilen erträglich? Dafür gibt's auch den Msgbox-Beep als Zugabe!
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************
Option Explicit
Private Declare Function LoadIconBynum Lib "user32.dll" Alias "LoadIconA" ( _
ByVal hInstance As Long, _
ByVal lpIconName As Long) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function GetWindowDC Lib "user32.dll" ( _
ByVal hwnd As Long) As Long
Private Declare Function DrawIcon Lib "user32.dll" ( _
ByVal hdc As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal hIcon As Long) As Long
Private Declare Function ReleaseDC Lib "user32.dll" ( _
ByVal hwnd As Long, _
ByVal hdc As Long) As Long
Private Declare Function DestroyIcon Lib "user32.dll" ( _
ByVal hIcon As Long) As Long
Private Declare Function MessageBeep Lib "user32.dll" ( _
ByVal wType As Long) As Long
Private Enum ICON_ID
IDI_CRITICAL = 32513&
IDI_QUESTION = 32514&
IDI_EXCLAMATION = 32515&
IDI_INFORMATION = 32516&
End Enum
Private Const GC_CLASSNAMEMSEXCELFORM = "ThunderDFrame"
Private Const MB_ICONSTOP = &H10&
Private Const MB_ICONQUESTION = &H20&
Private Const MB_ICONEXCLAMATION = &H30&
Private Const MB_ICONINFORMATION = &H40&
Private msngFormHeight As Single
Private Sub UserForm_Activate()
Height = msngFormHeight + 1
End Sub
Private Sub UserForm_Initialize()
msngFormHeight = Height
End Sub
Private Sub UserForm_Resize()
Repaint
Call ShowSystemIcon(IDI_EXCLAMATION)
End Sub
Private Sub ShowSystemIcon(penmIDI As ICON_ID)
Dim lngIconHandle As Long, lngFormHandle As Long
Dim lngMsgBeep As Long, lngFormDC As Long
lngIconHandle = LoadIconBynum(0&, penmIDI)
lngFormHandle = FindWindow(GC_CLASSNAMEMSEXCELFORM, Caption)
lngFormDC = GetWindowDC(lngFormHandle)
Call DrawIcon(lngFormDC, 20&, 50&, lngIconHandle) 'hier die Position des Icons angeben
Call ReleaseDC(lngFormHandle, lngFormDC)
Call DestroyIcon(lngIconHandle)
Select Case penmIDI
Case IDI_CRITICAL: lngMsgBeep = MB_ICONSTOP
Case IDI_QUESTION: lngMsgBeep = MB_ICONQUESTION
Case IDI_EXCLAMATION: lngMsgBeep = MB_ICONEXCLAMATION
Case IDI_INFORMATION: lngMsgBeep = MB_ICONINFORMATION
End Select
Call MessageBeep(lngMsgBeep)
End Sub
Gruß
Nepumuk