vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Grafik und Font · Bilder & Icons   |   VB-Versionen: VB4, VB5, VB613.07.07
Systemspezifische MsgBox-Symbole ermitteln und anzeigen

Mit diesem Code lassen sich die systemspezifischen MsgBox-Symbol ermitteln und bspw. in einer PictureBox anzeigen.

Autor:   Dieter OtterBewertung:  Views:  11.900 
www.tools4vb.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Sicher haben Sie auch schon bemerkt, dass die Symbole in der VB Standard-MsgBox nicht unter allen Windows-Versionen gleich aussehen. Die Symbole für das Info-, Frage oder auch Ausrufezeichen variieren von Windows-Version zu Windows-Version. Nachfolgender Code zeigt, wie Sie diese Symbole selbst verwenden können - und zwar immer exakt die Symbole, wie sie auch Windows verwendet. Wenn Sie bspw. Ihre eigene MessageBox-Form verwenden können Sie mit Hilfe dieses Tipps die "richtigen" Warn- und Infosymbole anzeigen.

Fügen Sie nachfolgenden Code in ein Modul:

Option Explicit
 
' Benötigte API-Deklarationen
Private Declare Function LoadSystemIcon Lib "user32" _
  Alias "LoadIconA" ( _
  ByVal hInstance As Long, _
  ByVal nIcon As Long) As Long
 
Private Declare Function DrawIcon Lib "user32" ( _
  ByVal hDC As Long, _
  ByVal x As Long, _
  ByVal y As Long, _
  ByVal hIcon As Long) As Long
 
' Symbol-Aufzählung
Public Enum eSystemIconID
  IDI_APPLICATION = 32512&
  IDI_ASTERISK = 32516&
  IDI_EXCLAMATION = 32515&
  IDI_HAND = 32513&
  IDI_QUESTION = 32514&
End Enum
Public Sub DrawSystemIcon(ByVal hDC As Long, _
  ByVal nID As eSystemIconID)
 
  ' System-Icon anzeigen
  Dim nHandle As Long
 
  nHandle = LoadSystemIcon(0&, nID)
  DrawIcon hDC, 0, 0, nHandle
End Sub

Anwendungsbeispiel:
Platzieren Sie auf die Form ein PictureBox-Control, um darin das gewünschte Systemsymbol anzuzeigen. Daneben platzieren Sie ein ComboBox-Control mit der Eigenschaft "Style = 2 - DropDownListe". Im Form_Load Ereignis wird die Größe der PictureBox autom. auf 32x32 Pixel gesetzt, sowie die AutoRedraw-Eigenschaft auf True festgelegt, damit das Symbol später auch angezeigt wird. Die ComboBox dient zur Auswahl des anzuzeigenden Symbols.

Private Sub Form_Load()
  ' Größe der PictureBox auf 32x32 Pixel festlegen
  With Picture1
    .BorderStyle = 0
    .Width = 32 * Screen.TwipsPerPixelX
    .Height = 32 * Screen.TwipsPerPixelY
    .AutoRedraw = True
  End With
 
  ' ComboBox mit Symbol-Auswahl
  With Combo1
    .AddItem "Anwendung"
    .ItemData(.NewIndex) = eSystemIconID.IDI_APPLICATION
 
    .AddItem "Infosymbol"
    .ItemData(.NewIndex) = eSystemIconID.IDI_ASTERISK
 
    .AddItem "Ausrufesymbol"
    .ItemData(.NewIndex) = eSystemIconID.IDI_EXCLAMATION
 
    .AddItem "Kritischsymbol"
    .ItemData(.NewIndex) = eSystemIconID.IDI_HAND
 
    .AddItem "Fragesymbol"
    .ItemData(.NewIndex) = eSystemIconID.IDI_QUESTION
 
    .ListIndex = 0
  End With
End Sub
Private Sub Combo1_Click()
  ' Icon anzeigen
  With Picture1
    .Cls
    DrawSystemIcon Picture1.hDC, Combo1.ItemData(Combo1.ListIndex)
  End With
End Sub



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.