RSS
StartseiteKnowledge LibraryTop 10Impressum

2.11 Wie kann ich Menüeinträge mit Icons versehen?

VB5-VB6

Von: Thorsten Dörfler

Um Icons in den Menüs anzuzeigen, wie auch bei Office 97/2000, können Sie auf Freeware Komponenten, wie das cPopMenu - Steuerelement von vbAccelerator.com zurückgreifen. Dieses Steuerelement ist als fertiges OCX inkl. Sourcecode erhältlich. Bitte beachten Sie, dass dieses Steuerelement die ssubtmr.dll Komponente benötigt, ebenfalls von vbAccelerator.com und ebenfalls im Sourcecode verfügbar.

Die Verwendung des Steuerelements ist recht simpel, denn die VB Menüs werden weiterhin mit dem VB Menüeditor erstellt. Folgendes Beispiel zeigt, wie cPopMenu initialisiert wird und einem Eintrag ein Icon zugewiesen wird:

With cPopMenu1
  ' Zuweisung einer ImageList:
  .ImageList = ilsIcons

  ' cPopMenu die Kontrolle über die VB Menüs geben:
  .SubClassMenu Me
  
  ' Die Key - Eigenschaft für ein VB Menü ist identisch mit dem Namen des Menüs.
  ' Hier z.B. wird das Icon für das Menü mnuFileOpen gesetzt:
  .ItemIcon("mnuFileOpen") = ilsIcons.ListImages("OPEN").Index - 1
  
  ' ...
  ' dies wiederholen sie für alle weiteren bebilderten Menüs
End With

Um die Beschriftung eines Menüeintrags festzulegen, schreiben sie nicht mehr:

mnuFile(0).Caption = "Projekt ö&ffnen..."

sondern:

cPopMenu1.Caption("mnuFile(0)") = "Projekt ö&ffnen..."

da das cPopMenu nun für die Darstellung der Menüs zuständig ist. Die VB eigenen Methoden Load/Unload etc. sind natürlich ebenfalls wirkungslos, sobald cPopMenu die Kontrolle über die Menüs hat. Dafür bietet das cPopMenu Steuerelement Methoden, wie AddItem, InsertItem und RemoveItem. Weitere Informationen auf vbAccelerator.com

Für die Icons in der VB ImageList aus den Windows Common Controls 5.0 sollten Sie keine Icon (*.ico) - Dateien verwenden, sondern Bitmap (*.bmp) Grafiken. Auf Grund eines Bugs in diesem Control, werden die Hintergründe der Icons unter Umständen schwarz dargestellt. Mit der ImageList aus den Common Controls 6.0 tritt dieses Propblem nicht mehr auf.

Links zum Thema