|
'Die API-Funktion TaskDialog aus der comctl32.dll
Private Declare Auto Function TaskDialog Lib "comctl32.dll" _
(ByVal hWnd As IntPtr, ByVal hInstance As IntPtr, ByVal _
WindowTitle As String, ByVal MainInstruction As String, _
ByVal Content As String, ByVal CommonButton As Integer, _
ByVal DialogIcon As Integer, ByRef PushedButton As _
Integer) As Integer
Public Enum eIcons
NoIcon = 0
Warning = -1
[Error] = -2
Information = -3
Question = 32514
SecurityShield = -4
SecurityShieldBlueBack = -5
SecurityShieldWarning = -6
SecurityShieldError = -7
SecurityShieldOk = -8
SecurityShieldGrey = -9
End Enum
Public Enum eButtons
'Rückgabewerte für gedrückte Schaltflächen
OK = 1
YES = 2
NO = 4
CANCEL = 8
RETRY = 16
CLOSE = 32
End Enum
Private Sub ListeLöschenToolStripMenuItem_Click(ByVal sender As _
System.Object, ByVal e As System.EventArgs) Handles _
ListeLöschenToolStripMenuItem.Click
'Vista-Dialog oder normaler Dialog
If Environment.OSVersion.Version.Major >= 6 Then
'Betriebssystem ab Vista
Dim ret As eButtons = Nothing
Dim iBtn As Integer = 0
Dim title As String = "Achtung! Sind Sie sich sicher?"
Dim instruction As String = "Wirklich alle Einträge löschen?"
Dim content As String = "Achtung: Es wird ALLES gelöscht!"
'Systemsound
System.Media.SystemSounds.Hand.Play()
'Aufrufparamater übergeben
TaskDialog(CType(0, IntPtr), CType(0, IntPtr), title, _
instruction, content, eButtons.YES Or eButtons.NO, _
CInt(&HFFFF& And eIcons.SecurityShieldError), iBtn)
'Rückgabewert zurückgeben
ret = GetButtonFromValue(iBtn)
If ret = eButtons.YES Then
'Es wird gelöscht
lst1.Items.Clear()
Else
MessageBox.Show("Es wurde abgebrochen.", "Abbruch", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
'Normaler Standarddialog als Ersatz, da kein Vista oder höher.
MessageBox.Show("Nur bei einem Betriebssystem an Vista,"_
"Windows 7 oder höher ist der rote Vista-Dialog möglich."_
" Deshalb folgt hier noch einmal die Abfrage mit dem "_
"Standarddialog MessageBox", "Hinweis", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
If MessageBox.Show("ACHTUNG! Sind Sie sich wirklich sicher, "_
"dass Sie ALLE Einträge löschen wollen?", "Achtung: Es "_
"wird ALLES gelöscht!", MessageBoxButtons.YesNo, _
MessageBoxIcon.Question) = _
Windows.Forms.DialogResult.Yes Then
'Es wird gelöscht
lst1.Items.Clear()
Else
MessageBox.Show("Es wurde abgebrochen.", "Abbruch", _
MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
End If
End Sub
| |