Gewusst wie: Festlegen der Maske und Bildeigenschaften für Office XP CommandBars

Der Support für Office 2003 wurde eingestellt

Microsoft stellte am 8. April 2014 den Support für Office 2003 ein. Diese Änderung wirkt sich auf Ihre Softwareupdates und Sicherheitsoptionen aus. Erfahren Sie, was das für Sie bedeutet und wie Sie Ihren Schutz aufrechterhalten können.

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 286460
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Zusammenfassung
Microsoft Office XP führt zwei neue Eigenschaften in das CommandBarButton -Objekt: die Eigenschaften Mask und Bild . Diese Eigenschaften können Sie Bilder in benutzerdefinierten generierten Befehlsleisten-Steuerelemente platzieren.

Hinweis: Diese Eigenschaften sind auch in Microsoft Office 2003 verfügbar.
Weitere Informationen
Die Maske und Eigenschaften werden als Typ IPictureDisp definiert, die Mitglied der Stdole-Bibliothek ist. IPictureDisp verwendet Methoden, die über Prozessgrenzen hinweg gemarshallt werden können nicht. Daher der Maske und der Bild -Eigenschaft können nur aufgerufen werden in-Process (Automatisierung VBA-Makros Add-Ins und ActiveX-DLLs im Prozess ausführen). Finden Sie im Abschnitt "Informationsquellen" Weitere Informationen zu diesem Verhalten.

Im folgenden Beispiel veranschaulicht ein Automatisierungs-Add-in erstellen, mit einem maskiertes Bild eine Symbolleistenschaltfläche hinzugefügt.

Schritte zum Erstellen von Bildern für das Bild und der Maske

  1. Starten Sie Microsoft Paint. Klicken Sie im Bild auf Attribute . Ändern Sie Größe der Grafik zu 32 x 32, und klicken Sie auf OK .
  2. Zeichnen Sie ein gelbes Gesicht auf der Oberfläche zeichnen. Füllen Sie den Bereich um den Kreis mit Blau.

    Picture of sample Picture.bmp. Steps				to re-create this image are given in this article.
  3. Speichern Sie das Bild als Circle.bmp.
  4. Um die Maske zu erstellen, füllen Sie den Kreis mit Schwarz und füllen Sie den Bereich außerhalb des Kreises mit weiß. Wenn das Bild mit der Maske für das CommandBar-Steuerelement hinzugefügt wird, sind die schwarze Bereiche der Maske sichtbar, während weiße Bereiche transparent sind.

    Picture of sample Mask.bmp. Steps to				re-create this image are given in this article.
  5. Speichern Sie das Bild als Mask.bmp.

Schritte zum Erstellen des COM-AddIn


  1. Starten Sie Visual Basic und erstellen Sie ein neues Add-in-Projekt.
  2. Klicken Sie im Menü Projekt auf Verweise . Wenn älter als Version XP ausgewählt ist ein "Microsoft Office" Typ-Bibliothek, deaktivieren Sie die Bibliothek Typ, und wählen Sie die Typ-Bibliothek für Microsoft Office XP. Klicken Sie auf OK .
  3. Klicken Sie im Projekt-Explorer mit der rechten Maustaste auf FrmAddin und klicken Sie auf FrmAddin entfernen .
  4. Doppelklicken Sie im Projekt-Explorer auf den Designer Verbinden . Wählen Sie für Anwendung die Option Microsoft Excel , und für Erste Ladeverhalten wählen Starten .
  5. Im Menü Ansicht klicken Sie auf Code , und ersetzen den Code für die Add - in mit den folgenden:
    Option ExplicitDim oExcel As ObjectDim WithEvents oButton As Office.CommandBarButtonPrivate Sub AddinInstance_OnConnection(ByVal Application As Object, _ ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _ ByVal AddInInst As Object, custom() As Variant)  Dim oPic As stdole.IPictureDisp  Dim oMask As stdole.IPictureDisp  ' Load the picture and mask.  Set oPic = LoadPicture(App.Path & "\circle.bmp")  Set oMask = LoadPicture(App.Path & "\mask.bmp")  ' Save an instance of our application.  Set oExcel = Application  ' Create a new button on the standard CommandBar.  Set oButton = oExcel.CommandBars("Standard").Controls.Add(msoControlButton)  With oButton    ' Set a tag for the button.    .Tag = "My Button"    ' Set the event to fire when the button is pressed.    .OnAction = "!<" & AddInInst.ProgId & ">"    ' Set the picture property -- if you are using the Mask property, this    ' property must be set before you set the Mask property.    .Picture = oPic    ' Set the Mask property.    .Mask = oMask    ' Show the button.    .Visible = True  End WithEnd SubPrivate Sub AddinInstance_OnDisconnection(ByVal RemoveMode As _   AddInDesignerObjects.ext_DisconnectMode, custom() As Variant)   ' Delete the button.   oButton.Delete   ' Release references.   Set oButton = Nothing   Set oExcel = Nothing End SubPrivate Sub oButton_Click(ByVal Ctrl As Office.CommandBarButton, _  CancelDefault As Boolean)  ' Our button was pressed.  MsgBox "The button was pressed!"End Sub					
  6. Speichern Sie das Projekt und erstellen Sie das Add-in im Ordner, in dem die Bitmaps gespeichert werden.
  7. Starten Sie Excel. Ein neues Steuerelement mit einem gelben Kreis wird auf der standard CommandBar angezeigt. Beachten Sie, dass der Bereich um den gelben Kreis transparent ist.

Zusätzliche Hinweise

Wie bereits erwähnt kann nicht die IPictureDisp -Schnittstelle über Prozessgrenzen hinweg gemarshallt werden. Versucht, das Picture und Mask Eigenschaften Out-of-Process-Ergebnis in der folgenden Fehlermeldung festzulegen:
Laufzeitfehler '-2147418113(8000ffff) ':
Methode 'Grafik' des Objekts '_CommandBarButton' ist fehlgeschlagen
Daher können nicht Sie legen diese Eigenschaften für ein CommandBarButton von alle Out-of-Process-Automatisierungsclient oder eine in-Process-Komponente, die im Debugmodus in der Visual Basic-Entwicklungsumgebung ausgeführt wird. Wenn Sie das Beispiel-Add-in in diesem Artikel von der IDE von Visual Basic beschrieben ausführen, erhalten Sie diesen Fehler. Um den Fehler während des Debuggens zu vermeiden, können Sie die Zeilen, die Picture und Mask Eigenschaften festgelegt oder verwenden die bedingten Kompilierung, wie z. B. Kommentar eine # If... Then... # Else -Direktive.
Informationsquellen
Weitere Informationen finden Sie in den folgenden Artikeln der Microsoft Knowledge Base:
238228Erstellen einer Office 2000 COM Add-in in Visual Basic
230689Beispiel: Comaddin.exe Office 2000 COM Add-in in Visual C++ geschriebene
150034PRB: LPPICTUREDISP kann nicht über Grenzen hinweg Prozess weitergeleitet werden
Weitere Informationen finden Sie unter der folgenden Microsoft-Website:
Add-in Ipicturedisp Maske Bild

Warnung: Dieser Artikel wurde automatisch übersetzt.

Eigenschaften

Artikelnummer: 286460 – Letzte Überarbeitung: 12/06/2015 00:09:04 – Revision: 4.6

Microsoft Visual Basic Enterprise Edition for Windows 6.0, Microsoft Visual Basic 6.0 Professional Edition, Microsoft Office Access 2003, Microsoft Access 2002 Standard Edition, Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Office Word 2003, Microsoft Word 2002 Standard Edition, Microsoft Office FrontPage 2003, Microsoft FrontPage 2002 Standard Edition, Microsoft Office Outlook 2003, Microsoft Outlook 2002 Standard Edition, Microsoft Office PowerPoint 2003, Microsoft PowerPoint 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbautomation kbhowto KB286460 KbMtde
Feedback