Come impostare la maschera e la proprietÓ immagine per CommandBars di Office XP

Traduzione articoli Traduzione articoli
Identificativo articolo: 286460 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Microsoft Office XP introduce due nuove proprietÓ all'oggetto CommandBarButton : le proprietÓ di maschera e immagine . ╚ possibile utilizzare queste proprietÓ per inserire immagini sui controlli barra di comando generato personalizzato.

Nota Queste proprietÓ sono disponibili in Microsoft Office 2003.

Informazioni

Le proprietÓ di maschera e immagine sono definite come tipo IPictureDisp , che Ŕ un membro della libreria Stdole. IPictureDisp utilizza i metodi che non possono essere sottoposto a marshalling oltre i limiti del processo. Di conseguenza, le proprietÓ di maschera e l'immagine solo possono essere chiamate in fase di lavorazione (le macro VBA, automazione, i componenti aggiuntivi e DLL di ActiveX esecuzione in-process). Vedere la sezione "Riferimenti" per ulteriori informazioni su questo comportamento.

Nell'esempio riportato di seguito viene illustrato come creare un componente aggiuntivo di automazione che aggiunge un pulsante CommandBar con un'immagine mascherata.

Procedura per creare immagini per l'immagine e la maschera

  1. Avviare Microsoft Paint. Nel menu immagine , fare clic su attributi . Modificare le dimensioni dell'immagine a 32 x 32 e scegliere OK .
  2. Disegnare una faccia gialla nell'area di disegno. Consente di riempire l'area attorno al cerchio in blu.

    Riduci l'immagineEspandi l'immagine
    Picture of sample Picture.bmp. Steps
				to re-create this image are given in this article.
  3. Salvare l'immagine come Circle.bmp.
  4. Per creare la maschera, Ŕ necessario riempire il cerchio con il nero e riempire l'area all'esterno del cerchio con il bianco. Quando l'immagine con la maschera viene aggiunto al controllo CommandBar, le aree nere della maschera sono visibili, mentre le aree bianche sono trasparenti.

    Riduci l'immagineEspandi l'immagine
    Picture of sample Mask.bmp. Steps to
				re-create this image are given in this article.
  5. Salvare l'immagine come Mask.bmp.

Procedura per creare il componente aggiuntivo COM


  1. Avviare Visual Basic e creare un componente aggiuntivo nuovo progetto.
  2. Scegliere riferimenti dal menu progetto . Una libreria dei tipi "Microsoft Office" precedente alla versione che XP Ŕ selezionata, deselezionare che la libreria dei tipi e selezionare la libreria dei tipi per Microsoft Office XP. Fare clic su OK .
  3. In Esplora progetti, Ŕ necessario fare clic con il pulsante destro del mouse su frmAddin e scegliere Rimuovi frmAddin .
  4. In Esplora il progetto fare doppio clic nella finestra di connessione di progettazione. Per l'applicazione selezionare Microsoft Excel e per il Caricamento iniziale selezionare l'avvio .
  5. Dal menu Visualizza , fare clic su codice e sostituire il codice per lo - in con quanto segue:
    Option Explicit
    
    Dim oExcel As Object
    Dim WithEvents oButton As Office.CommandBarButton
    
    Private 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 With
    End Sub
    
    Private 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 Sub
    
    Private Sub oButton_Click(ByVal Ctrl As Office.CommandBarButton, _
      CancelDefault As Boolean)
      ' Our button was pressed.
      MsgBox "The button was pressed!"
    End Sub
    					
  6. Salvare il progetto e generare il componente aggiuntivo nella cartella in cui sono archiviate le bitmap.
  7. Avviare Excel. Un nuovo controllo con un cerchio giallo verrÓ visualizzato sulla CommandBar standard. Si noti che l'area intorno al cerchio giallo Ŕ trasparente.

note aggiuntive

Come giÓ anticipato, l'interfaccia IPictureDisp non pu˛ essere il marshalling oltre i limiti del processo. Tenta di impostare il risultato di out-of-process di proprietÓ Picture e maschera il seguente errore:
Errore di run-time '-2147418113(8000ffff) ':
Metodo immagine dell'oggetto '_CommandBarButton' non riuscito.
Non Ŕ pertanto possibile impostare queste proprietÓ per un CommandBarButton da qualsiasi client di automazione out-of-process di o da un componente di processo in esecuzione in modalitÓ di debug nell'IDE di Visual Basic. Se si esegue l'esempio componente aggiuntivo descritto in questo articolo dall'IDE di Visual Basic, verrÓ visualizzato questo errore. Per evitare l'errore durante il debug, Ŕ possibile inserire commenti le righe che impostare le immagini e la maschera o utilizzano la compilazione condizionale, ad esempio un # If... Then... # Else direttiva.

Riferimenti

Per ulteriori informazioni, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
238228Come creare una Office 2000 componente aggiuntivo COM in Visual Basic
230689ESEMPIO: Comaddin.exe Office 2000 componente aggiuntivo COM scritto in Visual c ++
150034PRB: LPPICTUREDISP Impossibile essere passato tra limiti di processo
Per ulteriori informazioni, vedere il seguente sito Web Microsoft (informazioni in lingua inglese):
http://support.microsoft.com/ofd

ProprietÓ

Identificativo articolo: 286460 - Ultima modifica: lunedý 29 gennaio 2007 - Revisione: 4.6
Le informazioni in questo articolo si applicano a:
  • 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
Chiavi:á
kbmt kbautomation kbhowto KB286460 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 286460
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com