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

Il supporto per Office 2003 è terminato

Il supporto Microsoft per Office 2003 è terminato l'8 aprile 2014. Questa modifica ha interessato gli aggiornamenti software e le opzioni di sicurezza. Ulteriori informazioni su come continuare a essere protetti.

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
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
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.

    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.

    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 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. 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):
immagine di maschera ipicturedisp AddIn

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 286460 - Ultima revisione: 12/06/2015 00:09:09 - Revisione: 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 KbMtit
Feedback