Esempio di attributi ATLBUTTON: dimostrazione di un pulsante dotato di immagini bitmap specifiche per i diversi stati

Aggiornamento: novembre 2007

L'esempio di attributi ATLBUTTON consente di creare un pulsante in cui viene visualizzata una delle tre immagini bitmap disponibili in base allo stato del pulsante. Al pulsante corrisponde un'immagine bitmap diversa a seconda che il pulsante non sia stato premuto, che il puntatore del mouse venga posizionato sul pulsante o che il pulsante sia stato premuto. Nell'esempio sono incluse immagini bitmap predefinite. È tuttavia possibile eseguire l'override di tali proprietà e utilizzare immagini bitmap personalizzate.

Nell'esempio viene illustrato inoltre l'utilizzo di numerosi attributi IDL, COM e del compilatore. L'attributo dispinterface viene utilizzato per inserire l'interfaccia dispatch _ATLButton nel file atlbutn.idl. L'attributo propputref viene utilizzato per consentire l'utilizzo di riferimenti, anziché di valori, nelle funzioni PictureStatic, PictureHover e PicturePush. Viene inoltre illustrato l'attributo di versione, nonché altri attributi comunemente utilizzati.

Nota sulla sicurezza:

Questo esempio di codice viene fornito solo a scopo dimostrativo e non deve essere utilizzato in applicazioni o siti Web, poiché potrebbe non implementare le tecniche migliori a livello di protezione. Microsoft esclude ogni responsabilità per danni diretti o indiretti derivanti dall'utilizzo dell'esempio di codice per scopi diversi da quelli previsti.

Per ottenere gli esempi e le istruzioni per l'installazione:

  • In Visual Studio scegliere Esempi dal menu Guida.

    Per ulteriori informazioni, vedere Individuazione dei file di esempio.

  • La versione più recente e l'elenco completo degli esempi sono disponibili in linea alla pagina Visual Studio 2008 Samples.

  • È anche possibile trovare gli esempi sul disco rigido del computer. Per impostazione predefinita, gli esempi e il file Leggimi vengono copiati in una cartella nel percorso \Programmi\Visual Studio 9.0\Samples\. Per le versioni Express di Visual Studio, tutti gli esempi sono disponibili in linea.

Generazione ed esecuzione dell'esempio

Per generare ed eseguire l'esempio

  1. Aprire il file di soluzione atlbutn.sln.

  2. Scegliere Genera soluzione dal menu Genera.

  3. Aprire ActiveX Control Test Container e inserire il controllo (oggetto CAtlButton). Per informazioni dettagliate sull'accesso a Test Container e sul relativo utilizzo per il test di un controllo, vedere Verifica di proprietà ed eventi tramite Test Container.

  4. Aprire la finestra di dialogo Proprietà per il controllo, quindi associare un'immagine a ciascuna delle proprietà elencate. A tale scopo, individuare la cartella dell'esempio, quindi selezionare un file BMP e scegliere Applica.

  5. Osservare come l'immagine visualizzata nel controllo venga modificata se vi viene posizionato il puntatore oppure se si fa clic sul controllo.

Attributi

Nell'esempio vengono utilizzati i seguenti attributi:

coclass, default, dispinterface, dll, dual, event_source, helpstring, id, implements_category, in, module, name, object, out, pointer_default, progid, propget, propput, propputref, registration_script, retval, support_error_info, uuid, version, vi_progid

Parole chiave

Nell'esempio vengono utilizzate le parole chiave seguenti:

Apartment; ATLTRACE; AtlWaitWithMessageLoop; BEGIN_COM_MAP; BEGIN_CONNECTION_POINT_MAP; BEGIN_MSG_MAP; BEGIN_OBJECT_MAP; BEGIN_PROPERTY_MAP; CComCoClass; CComControl; CComControl::FireViewChange; CComControl::InPlaceActivate; CComModule::GetClassObject; CComModule::GetLockCount; CComModule::Init; CComModule::RegisterServer; CComModule::Term; CComModule::UnregisterServer; CComObjectRoot; CloseHandle; CoGetInterfaceAndReleaseStream; CoInitialize; COleControl::OnClick; COM_INTERFACE_ENTRY; COM_INTERFACE_ENTRY_IMPL_IID; CoMarshalInterThreadInterfaceInStream; CONNECTION_POINT_ENTRY; CProxy_ATLButton; CreateDIBPalette; CreatePalette; CreateThread; CTimer; DECLARE_HANDLE; DECLARE_REGISTRY_RESOURCEID; DIBNumColors; DisableThreadLibraryCalls; DLL_PROCESS_DETACH; END_COM_MAP; END_CONNECTION_POINT_MAP; END_MSG_MAP; END_OBJECT_MAP; END_PROPERTY_MAP; GetCursorPos; GetFileSize; GetWindow; GlobalAlloc; GlobalFree; GlobalLock; GlobalSize; GlobalUnlock; IConnectionPointContainerImpl; IConnectionPointImpl; IDispatchImpl; IObjectSafetyImpl; IOleControlImpl; IOleInPlaceActiveObjectImpl; IOleInPlaceObjectWindowlessImpl; IOleInPlaceObjectWindowlessImpl::InPlaceDeactivate; IOleObjectImpl; IPersistPropertyBagImpl; IPersistStreamInitImpl; IProvideClassInfo2Impl; IViewObjectExImpl; LPLOGPALETTE; MESSAGE_HANDLER; OBJECT_ENTRY; PaintDIB; PaletteSize; PROP_ENTRY; PtInRect; PutImage; ReadDIBFile; ReadFile; RealizePalette; ScreenToClient; SelectPalette; SetDIBitsToDevice; SetStretchBltMode; Sleep; StretchDIBits; TimerOff; TimerOn; Unlock; USES_CONVERSION

Nota:

Alcuni esempi, tra cui il presente, non sono stati cambiati per riflettere le modifiche apportate alle procedure guidate, alle librerie e al compilatore di Visual C++, tuttavia forniscono comunque le istruzioni per completare l'attività desiderata.

Vedere anche

Altre risorse

Esempi di attributi ATL